TIL/알고리즘 공부

백준 5622번 Swift 알고리즘 연습

여의도사노비 2022. 8. 22. 20:31
728x90

전반적으로 간단한 문제였다.

각 번호마다 가지고 있는 알파벳의 범위가 지정되어 있어 case / switch 문을 사용하면 금방 해결할 것 같았다.

 

이 문제를 풀면서 생각한 논리적 흐름은

  1. case가 8개 밖에 안되니 그냥 직접 만드는게 빠르겠다.
  2. 각 케이스마다 걸리는 시간을 time에 더해준다.
  3. 최종 time을 print한다.

 

보자마자 case switch 문이 떠올라 금방 해결하긴했지만, 이런 비슷한 문제를 앞으로 마주쳤을때도 이렇게 접근해야할지는 고민해보아야 할 것 같다. 더 간단한 방법이 있을 것 같다.

 

 

* 5622번

let word = readLine()
var time = 0
var arr = [Character]()

for i in word! {
    arr.append(i)
}

for j in arr {
    switch j {
    case "A"..."C":
        time += 3;
    case "D"..."F":
        time += 4;
    case "G"..."I":
        time += 5;
    case "J"..."L":
        time += 6;
    case "M"..."O":
        time += 7;
    case "P"..."S":
        time += 8;
    case "T"..."V":
        time += 9;
    case "W"..."Z":
        time += 10;
    default:
        time += 0
    }
}

print(time)

 

정리(Today I Learned)

  1.  없음