목록전체 글 (189)
Where who wants to meet someone
난이도 브론즈 I 문제 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 내 답안 var n = Int(readLine()!)! // 반복문을 하나만 사용할 것이라 나누는 수를 나타낼 프로퍼티 i 생성(초기 2) var i = 2 // n이 1이 될 때까지 반복 while n != 1 { // n을 i로 나눈 나머지가 0이라면(소인수분해가 정상적으로 진행되면) if n % i == 0 { // n을 i로 나눈 몫으로 변경 및 현재 나누는 수 출력 n /= i print(i) } else { // 나머지가 0이 아니라면 i값 증가 i += 1 } } - 소인수분해는 ..
난이도 브론즈 II 문제 https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 내 답안 let m = Int(readLine()!)! let n = Int(readLine()!)! // 소수를 담을 primeNumberArr var primeNumberArr: [Int] = [] // m부터 n까지 반복문 진행 for i in m...n { // 약수의 개수를 담을 프로퍼티 count 초기화 var count = 0 // 1부터 i까지 반복문 진행 for j ..
난이도 브론즈 II 문제 https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 내 답안 let n = Int(readLine()!)! let input = readLine()!.split(separator: " ").map { Int($0)! } // 소수의 개수를 담을 프로퍼티 sum var sum = 0 // input으로 받은 값으로 돌아야 하니 forEach 사용 input.forEach { value in // 매번 약수의 개수를 담는 count 초기화 var count = 0 // 1부터 value까지 돌면..
난이도 브론즈 I 문제 https://www.acmicpc.net/problem/9506 9506번: 약수들의 합 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. www.acmicpc.net 내 답안 // -1을 EndSign으로 보고 while문 진행 while true { let input = Int(readLine()!)! // 입력값이 -1이라면 종료 if input == -1 { break } // 1은 모든 수의 약수이기 때문에 sum과 text에 미리 추가 var sum = 1 var text = "\(input) = 1" // 1을 제외하고..
난이도 브론즈 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)..
(삽질 후기로 작성된 글입니다) 데이터베이스 사용할 일이 있어 오라클 제품을 설치하였는데, 설치 과정에서 문제가 있고 설치가 다 되었어도 로그인이 안 되는 문제가 있어서 제거와 설치를 반복했습니다. 반복하다가 어느 순간부터는 이미 설치되어있다고 마법사가 종료되길래 관련 파일을 찾아보고 삭제했음에도 결과가 같더군요. 하여 구글링을 한 결과 다음의 방법을 찾게 되었고, 실제로 적용이 되어서 같은 경험을 하신분들에게 도움이 되고자 글을 작성합니다. (버전은 18c Express Edition 기준입니다) 시작메뉴 - Windows 시스템 - 명령 프롬프트 를 마우스 오른쪽 클릭 - 자세히 - 관리자 권한으로 실행 해서 나온 cmd 창에다가 다음 문구를 입력해줍니다. sc delete OracleServiceX..