목록백준 알고리즘 문제 기록 (74)
Where who wants to meet someone
난이도 브론즈 III 문제 https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 내 답안 let input = readLine()!.split(separator: " ").map { Int($0)! } let n = input[0] let k = input[1] var count = 0 // 반복문을 통해 1부터 n까지 돌면서 약수 파악 for i in 1...n { // 약수가 맞다면 count 증가 if n % i == 0 { count += 1 } // 현재 count가 k와 같다면, k번째 작은 수이기 때문에 출력하..
난이도 브론즈 III 문제 https://www.acmicpc.net/problem/5086 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net 내 답안 // 마지막의 0 0을 EndSign으로 삼는 가정 하에 while문 진행 while true { let input = readLine()!.split(separator: " ").map { Int($0)! } // 0, 0값이 들어오면 반복 종료 if input == [0, 0] { break } // 두 번째 값을 첫 번째 값으로 나눈 나머지가 0이라면 factor 출력 if input[1] % in..
난이도 브론즈 V 문제 https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 내 답안 /* 1. 자리수가 다를 수 있으므로 입력값을 뒤집어 String으로 만든다 (처음에는 그냥 쪼개기만 했었는데, 부족한 자릿수를 채우기 위해 String(repeating)을 쓰기 위해 타입을 맞춰주고자 String으로 바꿔주었고, 마지막 수부터 더하기 위해서는 역순으로 봐야 했기에 각각 이 작업을 해주기보다 쪼갤 때 해주면 좋겠다고 결론 내렸다) */ let input = readLine()!.split(separator: " ").map { String($0.revers..
난이도 브론즈 I 문제 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 내 답안 let input = readLine()!.split(separator: " ").map { Int($0)! } /* n 만큼의 날만큼 올라가고 내려가고를 반복하고 마지막날 올라가면 끝인 문제 n(a - b)이지만 이러면 na - nb이기 때문에 마지막날 내려가는 것까지 계산되기에 b를 더해줘야 해서 최종으로 다음과 같은 식 v = n(a - b) + b n(a - b) = v - b n = (v - b) / (a - b)..