티스토리 뷰

728x90

https://www.acmicpc.net/problem/1614

 

1614번: 영식이의 손가락

1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3, 4, 5, 4, 3 위와같이 세면 총 15를 셀 수 있다. 2번째 손가락을 3번 이용했으니 더 이상 사용할 수 없다.

www.acmicpc.net


  • 문제 : 

영식이는 숫자를 셀 때, 왼손을 이용한다. 엄지손가락부터 시작해서 새끼손가락까지 차례대로 하나씩 센다. 그다음에 새끼손가락까지 센 다음에는 반대로 엄지손가락으로 다시 역방향으로 센다. 영식이는 자기가 원하는 숫자가 나올 때 까지 계속해서 이 방법으로 센다. 영식이는 절대 손가락을 건너뛰지 않는다. 예를 들어 숫자 10을 셀 때는, 엄지 → 검지 → 중지 → 약지 → 새끼 → 약지 → 중지 → 검지 → 엄지 → 검지 이렇게 센다.

영식이가 손가락을 하나 다쳤다. 영식이는 오른손으로는 셀 수 없기 때문에, 왼손으로 세야 한다. 다친 손가락을 이용해서 셀 수 있는 횟수가 제한되어 있다.

영식이가 셀 수 있는 최대 숫자를 출력하는 프로그램을 작성하시오.

 

 

 


  • 풀이 :

구현 문제였습니다.

 

주어진 조건에 맞게 분기점을 설정하여 각각 맞는 값을 출력합니다.

다친 손가락이 1 또는 5 일경우

1,2,3,4,5,4,3,2 의 8짜리 반복에서 한번 돌 때마다 다친 손가락을 1 회만 사용하게 되므로 1일땐 8 * 다친손가락 사용횟수, 5일땐 그 값에 4를 더해 출력합니다.

 

만약 다친 손가락이 2~4번이면 한 번 돌 때마다 2번씩 사용하므로 2로 나누어 처리해주면 됩니다.

 

 

 


  • 소스코드 : 
finger = int(input())
cnt = int(input())

if 2<=finger<=4:
    if cnt % 2 == 0:
        cnt //= 2
        print((cnt * 8) + (finger - 1))
    else:
        cnt //= 2
        print((cnt * 8) + (1 - finger))
elif finger == 1:
    print(cnt * 8)
else:
    print(cnt*8 + 4)
320x100
댓글
© 2022 WonSeok, All rights reserved