목록문제풀이 (42)
이호진
동전의 화폐 단위가 주어질 때 이를 조합해서 만들 수 없는 최솟값 구하기 ex) 3 2 1 1 9 -> 8원이 만들 수 없는 최솟값 ex) 3 5 7 -> 1원이 만들 수 없는 최솟값 이 문제는 초기에 알고리즘을 어떻게 구성할 것인지 생각하는게 어려운 문제 먼저 정렬을 한 후 가상의 최소값 1을 잡아 순서대로 더해나간다. 더해진 숫자 이전까지는 구할 수 있다는 뜻 ex) 1 1 2 3 9 에서 최소값 1에 1을 더하면 2, 2에 1을 더하면 3, 3에 2를 더하면 5 인데 여기까지 했을 때, 4까지는 구할 수 있다는 뜻이고 5는 모른다. 계속 더해나가면 5+3 = 8이므로 8 이전까지는 더할 수 있다. 그러나 뒤에 9가 있기 때문에 8은 나올 수 없다. -> 조건문을 걸어서 뒤에 더하려는 숫자보다 숫자의..
0과 1로만 이루어진 문자열 S를 입력받아 0또는 1로만 이루어진 문자열을 만들어야 한다. 뭉쳐져있는 숫자는 한 번에 뒤집을 수 있다. ex) 0001100 -> 11을 뒤집어서 0000000으로 만들 수 있다. ->뒤집은 횟수 1번 ex) 111110011011 -> 00과 0을 뒤집어서 111111111111로 만들 수 있다. -> 뒤집은 횟수 2번 내가 생각한 알고리즘 1. 문자열을 입력받고 for문을 이용해 문자열을 하나씩 확인하면서 0과 1의 개수를 센다. 2. 0이 많은 경우에는 1을 뒤집는다. 2-1. if문을 이용하여 S[i]와 S[i+1]이 다르고 S[i]가 0인 경우 카운트한다. 3. 1이 많은 경우에는 0을 뒤집는다. 3-1. if문을 이용하여 S[i]와 S[i+1]이 다르고 S[i]..