개별로 숫자가 들어올 때마다 자릿수를 변화하며 숫자 구성하는 방법 res = 0 # x 에 대해서 for문이 돌아갈 때 res = res * 10 + x
리스트 원소 뒤집는 방법 1. reverse 메서드 이용 list(reverse("리스트이름")) 2. 슬라이싱 이용 list = list[::-1] 슬라이싱을 이용할때는 마지막 인덱스, 첫 인덱스, -1(역순으로 이동)
회문 문자열 : 거꾸로 해도 똑바로 해도 같은 문자 기러기 토마토 인도인 우영우... 인덱싱으로 접근하면 아주 쉬운 문제 n = int(input()) for i in range(n) : word = list(input().upper()) a = len(word) // 2 if len(word) % 2 == 0 : if word[:a] == list(reversed(word[a:])) : print(f"#{i+1} YES") else : print(f"#{i+1} NO") else : if word[:a] == list(reversed(word[a+1:])) : print(f"#{i+1} YES") else : print(f"#{i+1} NO")
ox 퀴즈를 맞췄을때 연달아 맞추면 가산점을 주는 알고리즘 n = int(input()) ans = list(map(int, input().split())) sum = 0 cnt = 0 for x in ans : if x == 1 : cnt += 1 sum += cnt print(cnt) else : cnt = 0 print(sum) 맞췄을 때 (1) 수를 세주고 틀렸을 때 (0) 수를 초기화 시켜줌으로써 가산점을 더해준다.
알고리즘 문제를 풀면 풀수록 느끼는거지만, 딕셔너리나 리스트에 대한 개념이 확실히 있어야 좀 더 빠르고 쉽게 문제를 풀이 할 수 있는 것 같다... + lambda 함수도 자유자재로 사용할 줄 알면 좋을듯! 지난 번 이용한 dictionary 에서의 try, except 구문을 이용해 같은 수의 주사위가 몇번 반복되는지를 딕셔너리를 이용하여 찾았고, 이를 바탕으로 3개 다 맞은 경우, 2개만 맞은 경우, 1개만 맞은 경우의 수를 찾아 점수를 계산하는 알고리즘을 작성해보았다. n = int(input()) num_dict = {} for i in range(n): num = list(map(int, input().split())) res = {} for j in num : try : res[j] += 1 ..
Reverse, isPrime 함수를 만들어서 풀이하는 문제. reverse 함수는 10의 n승 만큼을 길이를 받아 원래 수 x에서 나누어 몫을 계산하였고 그 값을 계속 제외해 나가면서 a를 구하고 a를 number에 더해주었음. n = int(input()) num_list = list(map(int, input().split())) def reverse(x): num_digit = list(str(x)) digit_list = [] num = 0 for i in range(len(num_digit)): a = x // (10**(len(num_digit)-(i+1))) x = x - a * (10**(len(num_digit)-(i+1))) num += a * (10**(i)) num = int(nu..