TIL

스파르타 내배캠 Spring 17일차

dzzzdee 2022. 11. 16. 22:28

 알고리즘 타임어택을 하였다. 주어진 시간은 2시간 ! 문제는 아주 쉽지만 난 아직 코딩아장아장...걸음마

1번과 2번은 비교적 쉽게 풀었다. 1번은 정답 100프로!! 2번은 80.. ?

살짝 수정하여 제출해보았는데 이번엔 75..???? 

고민고민하여 수정하고 또 수정해보며 겨우겨우 100프로를 맞췄다.

3번 문제는 369게임 하지만 남은시간 동안 3번을 다풀지못하여 2번까지만 제출하였다.

그 후 3번까지만 한번 풀어보고싶어 3번을 끙끙거리며 풀어보았다.

 

369게임

3,6,9가 들어가는 숫자는 숫자 대신 3,6,9의 개수만큼 박수를 치는 게임이다.

숫자에 3,6,9 가 들어갈 시에 쳐야될 박수 횟수를 return 하도록 함수를 만드는 문제다.

* 제한사항 1 <= order <= 1,000,000

* 입출력 예 

order = 3     >>>>  result =1   3은 3이 1개 있으므로 1을 출력

order =29423 >>>> result =2  29423은 3이 1개, 9가 1개 있으므로 2를 출력

 

def solution(order):
    answer = 0
    if order % 10 :
        if order % 10 == 3 or order % 10 == 6 or order % 10 == 9:
            answer += 1
        return answer + solution(order//10)
    else :
        return answer

재귀함수를 사용하여 코드를 짜보았다.

10으로 나누었을때 나머지가 3 또는 6또는 9이면 answer값에 1을 더하는 것을 반복한다.

코드를 보면 쫌 짧고 너무 쉬어보이지만 푸는 당시에 나는 2시간 정도 걸ㄹ......쓰읍

오류들 중에

if order % 10 == 3 or 6 or 9:

이런식으로 써서 모든게 참이되버리는 오류도 있었다. ㅎㅎ;;;

 

4번은 보지도 못해서 패스...하였ㄷ

알고리즘 어려우면서도 재밌다. 근데 진도는 언제나가지 큰ㅇ..