목록전체 글 (473)
MUKER_DEV with iOS

8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 내가 푼 풀이 let input = Int(readLine()!)! for _ in 1...input { let input1 = readLine()!.map { String($0) } var result = 0 var temp = 0 for i in input1 { if i == "O" { temp = temp + 1 result += temp } else { temp = 0 } } print(result) } 69100kb, 8ms, 307b

1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 내가 푼 풀이 let input = Double(readLine()!)! let arr = readLine()!.split(separator: " ").map { Double($0)! } var sum: Double = 0 let high = arr.max()! let result = arr.map { $0 / high * 100 } for i in result { sum += i } print(sum / input) 69100kb, 8ms, 231b

3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 내가 푼 풀이 var arr: [Int] = [] var a = 10 for i in 0...9 { arr.append(Int(readLine()!)!) arr[i] = arr[i] % 42 } for i in 0...8 { for j in i+1...9 { if arr[i] == arr[j] { a = a - 1 break // 중첩되는 숫자가 나오면 더이상 반복하지 않고 break로 j를 돌리는 for문을 빠져나온다. } } } print(a) 69100kb, 8ms, 247b 개선한 풀이 - 길이 감소 var arr = [In..

2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 내가 푼 풀이 - 배열.firstIndex() 함수로 원하는 값의 순서를 앞에서부터 몇번째인지 알 수 있다. var arr: [Int] = [] for _ in 1...9 { arr.append(Int(readLine()!)!) } let max = arr.max()! print(max) print(arr.firstIndex(of: max)! + 1) 69100kb, 8ms, 141b

10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 내가 푼 풀이 - .min()과, .max()로 배열의 최솟값, 최대값을 구할 수 있다. let input = Int(readLine()!)! let arr = readLine()!.split(separator: " ").map { Int($0)! } print(arr.min()!, arr.max()!) 133696kb, 404ms, 120b

1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 내가 푼 풀이 - 숫자에서 자릿수를 구하고 싶을때는 / 와 % 를 적절하게 사용할 수 있다. let input = Int(readLine()!)! var temp = input var num = 0 repeat { let input1 = temp / 10 let input2 = temp % 10 temp = (input2 * 10) + ((input1 + input2) % 10) num += 1 } while input != temp print(n..

10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 내가 푼 풀이 - readLine()이 있는지 없는지 while로 조건 검사, 후에 a + b 더하기 while let input = readLine() { let result = input.split(separator: " ").map { Int($0)! } print(result[0] + result[1]) } 69104kb, 8ms, 128b

10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 내가 푼 풀이 while true { let input = readLine()!.split(separator: " ").map { Int($0)! } if input[0] == 0 && input[1] == 0 { break } print(input[0] + input[1]) } 69104kb, 8ms, 172b

내가 푼 풀이 let input = readLine()!.split(separator: " ").map { Int($0)! } let input2 = readLine()!.split(separator: " ").map { Int($0)! } for i in input2 { if i < input[1] { print(i, terminator: " ") } } 70012kb, 20ms, 209b