뭐지 이 쉬운 문제는?
n = int(input())
for _ in range(n):
a,b = map(int, input().split())
print(a**b % 10)
스윽
시간초과
그래서 검색검색
n = int(input())
for _ in range(n):
a, b = map(int, input().split())
if a % 10 in [1, 5, 6]: # 패턴 1개
print(a)
elif a % 10 == 0:
print(10)
elif a % 10 in [4, 9]: # 패턴 2개
if b % 2 != 0: # 홀수
print(a)
else:
if a % 10 == 4:
print(6)
elif a % 10 == 9:
print(1)
elif a % 10 in [2, 3, 7, 8]:
if b % 4 == 0:
print(a ** 4 % 10)
elif b % 4 == 1:
print(a ** 1 % 10)
elif b % 4 == 2:
print(a ** 2 % 10)
elif b % 4 == 3:
print(a ** 3 % 10)
1~10 의 제곱수의 일의 자리 패턴이 각각 있다는 사실을 확인하고 각 수에 맞는 부분들을 일일이 기입.. 무식.. 안이쁨..
뭔가 오히려 일을 하기 전에 알고리즘을 잘 풀었던 것 같다는 생각이다..
코드가 중복이 있던 없던 막 짜서 되기만 하면 된다고 생각했었으니까..
지금은 모든 것이 어설프게 습득되어 있는 상태라 혼란 그 자체다
아무튼
안되가지고 다른 코드 참조 후 작성한 코드다
n = int(input())
for _ in range(n):
a, b = map(int, input().split())
b = b % 4
if b == 0:
b = 4
a = (a**b) % 10
if a == 0:
print(10)
else:
print(a)
알고리즘 공부방법을 바꿔야겠다.
다른 분들의 공부방법들을 보니, 문제를 일정시간동안 보고 진도가 나가지 않으면 다른분들의 풀이를 보고 구현, 안되면 다시 보고 보고보고..
하는 거였다.
나는 무조건 내 머리힘으로만 풀어야된다고 생각해서 몇 시간동안 붙잡다가 힌트보고 다시하고 힌트보고 결국 안되서 다른분들 풀이보고..이랬는데
안되는거 붙잡고 있어봤자 안된다는 걸 잊었던 모양.
나도 일정시간 동안 안되면 바로 풀이를 보고 '습득' 을 해야겠다.
알고리즘은.. 머리가 좋으면 무슨 문제든 풀 수 있는 줄 알았는데.. 사전지식이 필요한 것 같다.. 이제와보니 당연해보이는구나
허.허.허.
728x90
'프로그래밍 > 알고리즘' 카테고리의 다른 글
(백준) - 수 정렬하기 3 (Python3) (해설없음) (0) | 2022.07.08 |
---|---|
(백준) - 수 정렬하기 3 (Python3) (해설없음) (0) | 2022.06.30 |
(백준) - 재귀함수가 뭔가요? (Python3) (해설없음) (0) | 2022.06.10 |
(백준) 더하기 사이클(Python3) (해설없음) (0) | 2022.05.23 |
(SW Expert Academy) - [파이썬 S/W 문제해결 기본] - 전기버스 (미완성) (해설없음) (0) | 2022.05.20 |