문제
전자 제품에는 저항이 들어간다. 저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다.
처음 색 2개는 저항의 값이고, 마지막 색은 곱해야 하는 값이다.
저항의 값은 다음 표를 이용해서 구한다.
예를 들어, 저항에 색이 yellow, violet, red였다면 저항의 값은 4,700이 된다.
-
입력: 첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 색은 모두 위의 표에 쓰여 있는 색만 주어진다.
-
출력: 입력으로 주어진 저항의 저항값을 계산하여 첫째 줄에 출력한다.
풀이
달리 어려울 게 없는 문제인데 아차차 포인트가 두개 정도 있었다.
import Foundation
let first = readLine()!, second = readLine()!, third = readLine()!
let numToPow = Float(colorToNum(third))
let result = (colorToNum(first)*10 + colorToNum(second)) * Int(pow(10, numToPow))
print(result)
func colorToNum(_ color: String) -> Int {
switch color {
case "black":
return 0
case "brown":
return 1
case "red":
return 2
case "orange":
return 3
case "yellow":
return 4
case "green":
return 5
case "blue":
return 6
case "violet":
return 7
case "grey":
return 8
case "white":
return 9
default:
return -1
}
}
-
import Foundation
도대체 왜 맨날 까먹는지 알 수 없다. pow를 쓰려면 파운데이션이 필요한데 이걸 빼먹고 제출해서
컴파일 에러가 난게 이번이 벌써 세번짼가... 다음부턴 까먹지 말자!!
-
switch
스위치문을 과도하게 좋아하는 경향이 있다. 경우가 많아?! 어 스위치~ 하고 써버린다.
이번 문제는 케이스에 숫자 값 하나씩 붙어 있는 경우라 배열로 묶어 놓고 심플하게 인덱스를 불러 와도 되는 거였다.
다른 분들 풀이 보고 아차차 했다...
끝..!
'Problem Solvings & Algorithm > 백준' 카테고리의 다른 글
[백준] 1371: 가장 많은 글자 (feat. EOF) - Swift (0) | 2021.01.24 |
---|---|
[백준] 1052: 물병 - Swift 풀이 (0) | 2021.01.10 |
[백준] 10757: 큰 수 A+B - Swift 풀이 (0) | 2021.01.10 |
[백준] 1009: 분산 처리 - Swift (0) | 2021.01.06 |
[백준] 4673: 셀프 넘버 - Swift (0) | 2021.01.03 |
댓글