Today I Learned
20210814~20210816 백준 문제풀이 swift (사칙연산 곱셈, if문)
돌맹이시터
2021. 8. 17. 00:08
사칙연산 곱셈 (2588), if문 (1330, 9498, 2753, 14681, 2884) 문제풀이
먼저 곱셈 문제에서,
처음에 런타임 오류가 났는데
readLine으로 입력받을 때, 두 줄에 거쳐 입력을 받았는데
어떻게 두 줄을 입력받는지 몰라서였다.
복잡하게 생각할 것 없이 readLine을 두 번 사용하면 되는 문제였다.
let num1 = Int(readLine()!)!
let input2 = readLine()!
let num2 = Int(input2)!
let num2Arr = input2.map {Int(String($0))!}
let num3 = num1 * num2Arr[2]
let num4 = num1 * num2Arr[1]
let num5 = num1 * num2Arr[0]
let num6 = num1 * num2
print(num3)
print(num4)
print(num5)
print(num6)
위와 같이 코드를 작성해서 해결했다.
4번문제인 사분면 고르기까지는 난이도가 거의 없었고,
마지막 5번문제였던 알람시계 문제(2884)에서 시간을 많이 잡아먹었다.
정답률 39% ㄷㄷ
단순하게만 생각하고 접근했는데,
생각보다 반례가 많아서
왜 틀린건지 생각하느라 오래 걸렸었다.
let input = readLine()!.split(separator: " ")
let num = input.map{Int($0)!}
if num[1] < 45 {
num[0] != 0 ? print(num[0]-1, num[1]+15) : print("23", num[1]+15)
} else if num[1] > 45 {
print(num[0], num[1]-45)
} else {
print(num[0], "0")
}
최종적으로 위의 코드를 통해 정답 판정을 받았다.
제출하고 다른 사람들 코드와 비교해봤을 때,
모두 minute으로 바꿔서 계산한 사람들도 있었고,
미리 45를 빼서 음수로 시작한 사람들도 있었다.
난 내 코드가 더 직관적인 것 같아서 마음에 든다.
아니면 말고......