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를 빼서 음수로 시작한 사람들도 있었다.

난 내 코드가 더 직관적인 것 같아서 마음에 든다.

아니면 말고......