백준177 [Swift][BruteForce] 백준 1748번 (수 이어쓰기 1) 요구능력 : 식을 잘 만들 수 있는지 코드설명 : i를 자릿수라고 생각하자. 1의 자리가 있는 수 i가 1일때 count += n - 1 + 1이다. 10의 자리가 있는 수 i가 10일때 count += n - 10 + 1이다. 100의 자리가 있는 수 i가 100일때 count += n - 100 + 1이다. 101이라는 수가 n으로 들어왔다고 가정해보자. 이해하기 쉽게 역순으로 설명해보자면, i가 100일때 count += 101 - 100 +1 이다. 100의 자리에는 100과 101두개가 들어가므로 2가 나온다. i가 10일때 count += 101 - 10 + 1이다. 10의자리부터는 10~101까지이므로 92개가 나온다. i가 1일때 count += 101 - 1 + 1이다. 1의자리부터는 1.. 2021. 11. 23. [Swift][BruteForce] 백준 1107번 (리모컨) 요구능력 : 조건과 브루트포스를 떠올릴 수 있는지 코드설명 : 문제의 핵심 1. +, - 버튼으로 이동했는지 2. 버튼을 눌러서 이동했는지 나는 0부터 1000000까지의 모든 채널을 다 이동해보면서 n까지 가장 조금이동해서 도달할 수 있는 경우를 저장하고 출력하는 방법을 채택했다. 자세한 설명은 코드에 주석으로 다 적어놨는데 브루트포스라서 더 이상의 설명은 필요없을것같다. 후기 : 내가 풀어본 브루트포스중에 제일 어려웠던문제,, var n = Int(String(readLine()!))! let m = Int(String(readLine()!))! var arr: [Int] = [] if m != 0 { arr = readLine()!.split(separator: " ").map{Int(String(.. 2021. 11. 23. [Swift][Math] 백준 6588번 (골드바흐의 추측) 요구능력 : 소수와 홀수에 대한 이해 코드설명 : 문제의 핵심 1. 두개의 홀수 2. 두개의 소수 처음에는 에라토스테네스의 체로 소수부분을 모두 구해준다.(동빈나님 블로그에 아주 잘 설명되어있습니다!) var aa = Array(repeating: 0, count: 1000001) for i in 2...1000000{ aa[i] = i } for i in 2...1000000{ if aa[i] == 0{continue} for j in stride(from: i + i, through: 1000000, by: i){ aa[j] = 0 } } 저는 isGoldBach로 두 홀수 소수의 합으로 나타낼 수 있는 경우에 isGoldBach를 true로 바꿔주고 이곳을 지나지 않는다면 false로 나타낼수 없는.. 2021. 11. 22. [Swift][DP] 백준 13398번 (연속합 2) 요구능력 : DP에 대한 이해 코드설명 : 이 문제는 연속합 문제를 선행학습 하고 오셔야 이해가됩니다. 문제의 핵심 1. 연속합 2. 수를 하나 제거할 수 있다. 3. 수를 제거하지 않을 수도있다. 이 문제는 연속합이기 때문에 연속적으로 합을 구해줘야 하는데 수를 하나 뺄수 있다. 중요한점은 꼭 왼쪽에서 부터 시작한다는 생각을 버려야 한다. 만약에 -35라는 수를 빼고 연속합을 구하고싶다면 -35를 기준으로 가장 왼쪽에있는값 10부터 6까지의 연속합과 가장오른쪽에 있는값 -1부터 12까지의 연속합을 구해주면 된다. 이렇게 하면 왼쪽부터 -35만빼고 연속합을 모두 고려할수 있는것이다. 10 -4 3 1 5 6 -35 12 21 -1 n = 정수를 입력받는 부분 arr = n개의 정수로 이루어진 수열 dp_.. 2021. 11. 22. 이전 1 ··· 16 17 18 19 20 21 22 ··· 45 다음