본문 바로가기
Problem Solvings & Algorithm/백준

[백준] 1076: 저항 - Swift

by abcdesong 2021. 1. 6.

노션에서 보기

문제

전자 제품에는 저항이 들어간다. 저항은 색 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
   }
}

 

  1. import Foundation

    도대체 왜 맨날 까먹는지 알 수 없다. pow를 쓰려면 파운데이션이 필요한데 이걸 빼먹고 제출해서

    컴파일 에러가 난게 이번이 벌써 세번짼가... 다음부턴 까먹지 말자!!

  2. switch

    스위치문을 과도하게 좋아하는 경향이 있다. 경우가 많아?! 어 스위치~ 하고 써버린다.

    이번 문제는 케이스에 숫자 값 하나씩 붙어 있는 경우라 배열로 묶어 놓고 심플하게 인덱스를 불러 와도 되는 거였다.

    다른 분들 풀이 보고 아차차 했다...

 

끝..!

댓글