목록전체 글 (473)
MUKER_DEV with iOS
내가 푼 풀이 let input = Int(readLine()!)! var star = "*" for _ in 1...input { print(star) star += "*" } 69100kb, 20ms, 101b 개선한 코드 - 시간 감소 let input = Int(readLine()!)! for i in 1...input { let star = String(repeating: "*", count: i) print(star) } 69100kb, 8ms, 118b
내가 푼 풀이 let lineNum = Int(readLine()!)! for i in 1...lineNum { var arr: [Int] = [] arr = readLine()!.split(separator: " ").map { Int($0)! } print("Case #\(i): \(arr[0]) + \(arr[1]) = \(arr[0] + arr[1])") } 69104kb, 12ms, 210b
내가 푼 풀이 let lineNum = Int(readLine()!)! for i in 1...lineNum { var arr: [Int] = [] arr = readLine()!.split(separator: " ").map { Int($0)! } print("Case #\(i): \(arr[0] + arr[1])") } 69104kb, 8ms, 187b
문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다. P..
문제 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다. 영수증에 적힌, 구매한 각 물건의 가격과 개수 구매한 물건들의 총 금액 을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자. 입력 첫째 줄에는 영수증에 적힌 총 금액 X가 주어진다. 둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 N이 주어진다. 이후 N개의 줄에는 각 물건의 가격 a와 개수 b가 공백을 사이에 두고 주어진다. 출력 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하면 Yes를 출력한다. 일치..
문제 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다. 출력 1부터 n까지 합을 출력한다. 예제 입력 1 3 예제 출력 1 6 내가 푼 풀이 var input = Int(readLine()!)! var result = 0 for i in 1...input { result += i } print(result) 69100kb, 16ms, 97b 개선한 풀이 - 시간 감소 - 코드길이 감소 print(Array(1 ... Int(readLine()!)!).reduce(0) {$0 + $1}) 69100kb, 8ms, 57b
문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 예제 입력 1 복사 5 1 1 2 3 3 4 9 8 5 2 예제 출력 1 복사 2 5 7 17 7 첫번째 제출 풀이 var input1 = Int(readLine()!)! for _ in 1...input1 { var arr = readLine()!.split(separator: " ").map{ Int($0)! } print(arr[0] + arr[1]) } 69104kb, 8ms, 146kb
문제 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. 입력 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다. 출력 출력형식과 같게 N*1부터 N*9까지 출력한다. 예제 입력 1 2 예제 출력 1 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 처음 푼 풀이 var input = Int(readLine()!)! for i in 1...9 { print("\(input) * \(i) = \(input * i)") } 69100kb, 8ms, 94b
2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개 www.acmicpc.net 내가 처음 푼 풀이 var input = readLine()!.split(separator: " ").map { Int($0)! } let dice1 = input[0] let dice2 = input[1] let dice3 = input[2] var top = 0 for i in input { if i > top { top = i } } if dice1 == dice2 && dice2 == dice3 { print( 10000 + dice1 * ..
문제 KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다. 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다. 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진..