반응형 전체 글282 백준 2581번 소수 - 스위프트(Swift) 풀이 1. 에라토스테네스의 체를 이용하여 1 이상 10,000 이하의 자연수에 대해 소수 여부를 구한다. 2. M부터 N까지 순회하면서 최소 소수와 소수들의 합을 구한다. 1. 에라토스테네스의 체를 이용하여 1 이상 10,000 이하의 자연수에 대해 소수 여부를 구한다. 에라토스테네스의 체를 이용하면 O(NloglongN)에 1 이상 N이하인 모든 자연수에 대해 소수 여부를 구할 수 있다. N이 최대 10,000이기 때문에 굳이 에라토스테네스의 체를 사용하지 않아도 1~(i-1)까지로 전부 나눠봐서 소수인지 판별하는 O(N^2)을 알고리즘을 사용해도 시간 내에 통과가 가능하다. 2. M부터 N까지 순회하면서 최소 소수와 소수들의 합을 구한다. M부터 N까지 단순 순회하면서 소수들만 골라 더하고, 처음으로 나오.. 2022. 2. 10. 백준 2133번 타일 채우기 - 스위프트(Swift) 풀이 + 그림 설명 1. dp[index][first][second][third] = index번째 열의 각 행 상태가 first, second, third일 때, index열부터 남은 열을 모두 채우는 경우의 수 2. 현재 열의 상태에 따라 가능한 모든 경우의 수를 더한다. 1. dp[index][first][second][third] = index번째 열의 각 행 상태가 first, second, third일 때, index열부터 남은 열을 모두 채우는 경우의 수 다이나믹 프로그래밍을 이용한다. dp[index][first][second][third]를 위와 같이 정의한다. first, second, third는 0일 때는 비어있음, 1일 때는 채워져 있음을 나타낸다. 최종적으로 구해야하는 것은 dp[0][0][0][0.. 2022. 2. 9. 백준 1022번 소용돌이 예쁘게 출력하기 - 스위프트(Swift) 풀이 1. (r1, c1)부터 (r2, c2)까지 직접 채운다. 2. 가장 길이가 긴 숫자의 길이를 구한다. 3. 포맷에 맞춰 출력한다. 1. (r1, c1)부터 (r2, c2)까지 직접 채운다. 단순 구현 문제이다. r, c 범위가 절댓값 5000까지인데, (-5000, -5000)부터 (5000, 5000)까지 전부 구해도 총 연산 횟수 10^8로 시간 초과가 나지 않는다. 하지만 10^8개의 Int를 선언하면 메모리 초과가 난다. 문제에서는 다음과 같은 조건을 두고 있다. 0 ≤ r2 - r1 ≤ 49 0 ≤ c2 - c1 ≤ 4 따라서 실제 2차원 배열은 정답이 될 50*5 사이즈로만 선언해둔다. 그리고 소용돌이를 채울 때, 50*5 범위에 들어가는 것들만 정답 배열에 기록하고 범위 밖인 것은 그냥 스.. 2022. 2. 9. [Swift] 소수점 n+1번째 자리에서 반올림하여 n번째 자리까지 나타내기 1. 10^n을 곱한다. 2. round 함수로 반올림한 정수로 만든다. 3. 다시 10^n으로 나눠준다. 예를 들어 70.8756을 소수점 셋째 자리에서 반올림하여 둘째 자리까지만 나타내고 싶다면 70.8756 → 7087.56 → 7088 → 70.88 let x = 70.8756 print(round(x * 100) / 100)// 70.88 2022. 2. 8. [Swift] 원주율 파이(Pi)값 사용하기 기하 알고리즘을 공부하면서 원주율 파이값을 사용할 일이 생겼다. 아래와 같이 FloatingPoint 타입에 get 프로퍼티로 선언되어 있다. static var pi: Self { get } 사용은 아래와 같이 하면 된다. let PI = Double.pi // 3.141592653589793 2022. 2. 8. 이전 1 ··· 36 37 38 39 40 41 42 ··· 57 다음 반응형