독기품기 2024. 7. 24. 12:41

https://school.programmers.co.kr/learn/courses/30/lessons/120871

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

이 문제는 주어진 n번만큼 숫자를 1씩 증가시키는데 이 때 증가시킨 수가 3의 배수이거나 3을 포함하고 있으면 1씩 더 증가시켜 조건에 만족하게 풀어야 하는 문제이다.

그렇기에 n번 반복할 것이므로 for _ in range(n), answer += 1을 하고 1 증가시켜도 3의 배수이거나 3을 포함하고 있을 수 있기에 if가 아닌 while answer % 3 == 0 or  '3' in str(answer), answer += 1를 통해 3의 배수이거나 3을 포함하고 있을 때 answer를 1을 한 번 더 증가하게 되고 반복을 통해 3을 피할 수 있게 된다.

그 후 return answer를 해주면 된다.