문제

윷놀이는 한국의 전통 놀이 중 하나로, 종이에 그린 말판과 한 쪽만 평평하게 깎은 납작하고 둥근 나무 막대기(윷) 4개로 즐기는 놀이이다.

윷놀이에서 말을 이동시키기 위해서는 윷 4개를 바닥에 던져야하고, 앞을 보는 윷의 개수에 따라서 이를 부르는 명칭과 말이 얼마만큼 이동할 수 있는지가 정해진다.

도개걸윷모는 앞을 보는 윷의 개수가 각각 1, 2, 3, 4, 0 개이고, 각각 1, 2, 3, 4, 5 칸을 이동할 수 있다.

윷 4개를 바닥에 던진 결과가 주어질 때, 말이 얼마만큼 이동할 수 있는지 구해보자.

입력

첫째 줄에 윷 4개를 바닥에 던진 결과가 주어진다.

결과는 0 과 1 로 이루어진 길이가 4인 문자열이고, 0 이면 뒷 면을 1 이면 앞 면을 의미한다.

출력

윷 4개를 바닥에 던진 결과를 통해서 말이 몇 칸 이동할 수 있는지 출력한다.

// 입력 : 0110

// 출력 : 2

풀이

윷놀이의 모든 경우 (앞을 보는 윷의 수에 해당하는 말의 이동하는 크기)를 dictionary에 넣어줬다 해당 입력받은 윷의 1의 개수 (앞을 보는 윷의 개수)를 센 다음, 그 key값에 해당하는 value값을 출력한다

Swift에서 Dictionary형은 Value값이 없을 경우를 대비해서 해당 값에 접근할 경우 Optional Type을 Return한다
Optional Type의 값을 반환하지 않으려면 default값을 설정해주면 된다!


코드

import Foundation

let yut : [Int : Int] = [1:1, 2:2, 3:3, 4:4, 0:5]
let lst = Array(readLine()!).map{Int(String($0))!}
var count = 0
for i in lst 
{
    if i == 1
    {
        count += 1
    }
}
print(yut[count, default:count])