목록전체 글 (473)
MUKER_DEV with iOS
2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 나의 풀이 import Foundation //산술평균 : N개의 수들의 합을 N으로 나눈 값 //중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 //최빈값 : N개의 수들 중 가장 많이 나타나는 값 //범위 : N개의 수들 중 최댓값과 최솟값의 차이 let T = Int(readLine()!)! var A = [Int]() var D = [Int: Int]() var A2 = [Int]() // 인풋값(T)을 배열해 삽입 for _ in 1....
25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net 나의 풀이 let T = readLine()!.split(separator:" ").map{Int($0)!} print(readLine()!.split(separator:" ").map{Int($0)!}.sorted()[T[0]-T[1]]) 69108kb 8ms 129b - 작정하고 숏코딩해봤는데 swift에서 등수 1위!!!ㅎㅎ
10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 나의 풀이 import Foundation final class FileIO { private var buffer:[UInt8] private var index: Int init(fileHandle: FileHandle = FileHandle.standardInput) { buffer = Array(fileHandle.readDataToEndOfFile())+[UInt8(0)] // 인덱스 범위 넘어가는 것 방지 index = 0 } @inline(__always) private f..
2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 나의 풀이 let T = Int(readLine()!)! var A = [Int]() for _ in 1...T { A.append(Int(readLine()!)!) } for i in A.sorted() { print(i) } 69104kb 12ms 129b
10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 나의 풀이 let t = Int(readLine()!)! for _ in 1...t { let input = readLine()!.split(separator: " ").map { Int($0)! } let h = input[0] let n = input[2] let H = (n - 1) % h + 1 // 사람 수(n)에 -1을하고 층(h)을 나눈 나머지에 +1을 하면 0층이 나오는걸 막을 수 있다. let tempW = (n - 1) / h + 1..
2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 나의 풀이 let r = readLine()!.split(separator: " ").map { Int($0)! } let tm = r[2] - r[1] // 총 올라가야하는 거리(정상에서는 미끄러지지 않기 때문에 한번 미끄러지는 거리를 빼줌) let mm = r[0] - r[1] // 하루마다 올라가는 거리 var result = tm / mm // 총 올라가는 거리 / 하루마다 올라가는 거리 let ss = tm % mm // 나누고 떨어지는 나머지 값 if ss != 0 { // 나머지 값이 0이 아니라면 하루를 ..
1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 나의 풀이 var r = Int(readLine()!)! var c = 1 while true { r = r - c if r i { X -= i i += 1 } if i % 2 == 1 { print("\(i - X + 1)/\(X)") } else { print("\(X)/\(i - X + 1)") } 62224kb 8ms 164b
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
1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 나의 풀이 let input = readLine()!.split(separator: " ").map { Int($0)! } // 배열의 두번째 값이 배열의 세번째 값보다 클 시 -1 출력 if input[1] >= input[2] { print(-1) } else { print(input[0] / (input[2] - input[1]) + 1) } 69104kb 8ms 161b
1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 나의 풀이 var input = Int(readLine()!)! for _ in 1...input { let input2 = readLine()! // 임시배열 생성 var arr = [Character]() for i in input2 { // 1. 임시배열에 입력된 문자가 없을 경우 문자를 임시배열에 저장 if !arr.contains(i) { arr.append(i) // 2. 임시배열에 문자가 있을 경우, 임시배열의 마지막..