목록코테 (7)
MUKER_DEV with iOS
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bnUhIJ/btrMbzKb6C0/9NYWJVtzG0vsdlGO35XgC0/img.png)
2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 나의 풀이 let a = Int(readLine()!)! var count = 0 var num = 1 while true { count += 1 if num >= a { break } else { num += count * 6 } } print(count) 69100kb 8ms 171b
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bN2Nwz/btrLzDSbWDc/S3KP0WaNIVEGYtvOoNlMe0/img.png)
11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 나의 풀이 let input = Int(readLine()!)! let input2 = readLine()! var result = 0 for i in input2 { result += Int(String(i))! } print(result) 69100kb 8ms 134b 개선한 풀이 - 코드길이 감소 Int(readLine()!)! print(readLine()!.map{ Int(String($0))! }.reduce(0) { $0 + $1 }) 69100kb 8ms 82b
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cOGCzF/btrLqdNBI86/iCI5O0gO4tuZ0Mty7qVlRk/img.png)
4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 나의 풀이 코드 import Foundation let input = Int(readLine()!)! for _ in 1...input { var input2 = readLine()!.split(separator: " ").map { Int($0)! } var over = 0 var avg = 0 let count = input2[0] input2.remove(at: 0) for i in input2 { avg += i } avg = avg / count for i in input2 { if i > avg { over += 1 } } pr..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/daPKAp/btrKUiPb02j/z6mOy04lq3z23HfAg2KsVK/img.png)
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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bTGluG/btrKOIO5G0U/h7xOk8DzLerJDfZV4tSdFK/img.png)
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
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JQfJ7/btrKOI2FRkU/4IA8JE88kYb7fIkaWbT5Mk/img.png)
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
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JnenJ/btrKVw0gRQZ/zVcxJYEod1HQDIzUd7GP51/img.png)
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..