문제요약 나의 코드 및 풀이 리스트를 선언하여, 정배치일 경우, 역배치일 경우, 어느 것에도 해당 안될 경우로 나누어서 작성한다. sorted(ex, reverse = True) : 리스트 를 내림차순한다. ex = [1,2,3,4,5,6,7,8] num = list(map(int, input().split())) ex_reversed = sorted(ex, reverse=True) if num == ex: print("ascending") elif num == ex_reversed: print("descending") else: print("mixed") sort, sorted, reverse 메서드 비교 a = [4 ,7, 1, 3] #고정이라고 하자 a.sort() #오름차순 >> [1, 3, 4,..
문제요약 나의 코드 및 설명 list(map(int, str(a))) : 입력한 정수 a의 각 자릿수를 요소로 한 리스트를 생성한다. a_list[0],a_list[2] = a_list[2],a_list[0] : a_list의 인덱스 [0]과 [2]의 값을 서로 바꾼다. ###상수 a, b = map(int, input().split()) a_list = list(map(int, str(a))) b_list = list(map(int, str(b))) a_list[0],a_list[2] = a_list[2],a_list[0] b_list[0],b_list[2] = b_list[2],b_list[0] A = a_list[0] * 100 + a_list[1] * 10 + a_list[2] B = b_list..
문제요약 나의 코드 및 설명 def gugu(x,y) : 함수를 정의한다. if y == 10 : y가 10이 되면 리턴한다. "{0} * {1} = {2}".format(x,y,x*y) : .format(x,y,x*y) 의 괄호 안의 값들을 큰따옴표 안의 {0},{1},{2}에 넣는다. gugu(x,y+1) : y가 1씩 증가하는 함수를 호출하고, y가 10이 아니면 출력한다. n = int(input()) def gugu(x,y): if y == 10: return print("{0} * {1} = {2}".format(x,y,x*y)) gugu(x,y+1) gugu(n,1) 피드백 for문을 통해 작성할 수 있으나, 재귀함수를 작성하는 것이 어려워서 연습차 재귀함수 통해 문제를 풀어보았다. prin..
문제요약 나의 코드 및 설명 num = list(map(int, str(a*b*c))) : 예를들어 a,b,c 를 곱한 값이 17037 일 때 [1,7,0,3,7] 로 저장된다. a = int(input()) b = int(input()) c = int(input()) num = list(map(int, str(a*b*c))) check = [0]*10 for i in range(len(num)): check[num[i]] = num.count(num[i]) for j in check: print(j) 피드백 별다른 문제 없이 간단하게 해결하였다. 숫자 각 자릿수를 리스트로 저장하는 방법을 몰랐을때는 헤맸었으나, 어느정도 숙달되지 않았나 싶다.
문제요약 나의 코드 및 설명 string = list(input().upper()) : 입력 받은 문자열을 대문자로 변환하여, 리스트에 저장한다. string_list : 입력 받은 문자열을 중복 없이 리스트에 저장한다. string에 저장된 문자열에 문자가 각각 몇 개씩 등장하는지 cnt 리스트에 담는다. (string의 인덱스와 cnt의 인덱스는 일치한다.) cnt에 저장된 cnt의 최댓값이 2개 이상인 경우 "?"를 출력한다. string = list(input().upper()) string_list = list(set(list(map(str, str(string))))) cnt = [] for i in range(len(string_list)): cnt.append(string.count(str..
문제요약 나의 코드 및 설명 card : 카드를 넣을 리스트를 생성한 후 반복문으로 1부터 N까지의 수를 card 리스트에 저장한다. queue : 큐 자료구조를 이용하기 위해 데크를 생성한다. queue.popleft()를 통해 가장 먼저 들어간 카드를 삭제한다. queue.append(queue.popleft()) : 그 다음, 가장 먼저 들어간 카드를 큐의 가장 뒤에 추가한다. from collections import deque n = int(input()) card = [] for i in range(1,n+1): card.append(i) queue = deque(card) while len(queue) != 1: queue.popleft() queue.append(queue.popleft()..
문제요약 나의 코드 및 설명 score : 각 점수를 저장 score_sum_list : 각 점수의 합을 저장 score_sum_list 안의 값이 모두 100 이하일 경우 리스트의 가장 마지막 인덱스의 값을 출력한다. score_sum_list 안의 값이 100이면, 100을 출력하고 반복문을 탈출한다. 위 두 if 조건에 해당되지 않는다면, score_sum_list의 이전 인덱스 값과, 현재 인덱스 값을 비교하여 100과의 차이가 가장 근소한 것을 출력한다. score = [] score_sum_list = [] score_sum = 0 for i in range(10): score.append(int(input())) score_sum += score[i] score_sum_list.append(..
문제요약 나의 코드 및 설명 n : 좌석의 수 string : 좌석의 정보 if "LL" in string : 입력받은 문자열에 LL이 포함되어 있으면, LL의 개수에 따라 서로 다르게 답안 출력 n = int(input()) string = input() S_count = string.count("S") LL_count = string.count("LL") if "LL" in string: print(S_count + LL_count + 1) else: print(S_count) 피드백 LL이 있을때, 없을 때의 규칙만 찾으면 쉽게 풀 수 있는 문제. 다양한 예시를 통해 규칙을 찾아보도록 해야겠다.