[Python] baekjoon 1427, 1009

soro·2024년 1월 26일
0

vc

목록 보기
5/5

1427

문제

code

풀이과정

n을 문자열로 입력받고 입력받은 n의 각 자리수를 int타입으로 변환해 리스트에 저장한다. 그 후 li.sort(reverse=True)라는 코드를 이용해 리스트를 내림차순으로 정렬한 뒤 다시 join함수를 이용해 문자열로 변환시켜준다.

1009

문제

code

풀이과정

이 코드에서 가장 신경써야 할 것은 시간제한이였다. 만약 a의 b제곱을 그냥 계산하게되면 시간초과가 발생하기 때문에 규칙성을 찾아서 코드를 작성해야 했다. 1에서 9까지의 n제곱수의 1의자리수는 모두 최대 4개까지의 수가 반복된다.
1의자리 수를 계산하는 함수 cal()을 선언한다. 이 함수에서 a%=10을 하는 이유는 시간을 최대한 절약하기 위해 1의 자리 수에만 포커스하기 위함이다. 만약 a가 0일 경우 1의자리수는 항상 0이기 때문에 10을 return하고, b가 4로 나누어 떨어지는 경우 (a의 4제곱)%10을 return한다. (4로 나누어 떨어지지 않는 경우에는 b%4를 계산한뒤 위의 과정을 진행한다.)
그 후 a, b를 input받고 결과값을 출력한다.

0개의 댓글