Language/Python (6) 썸네일형 리스트형 재귀함수 함수가 자기 자신을 호출하는 ‘재귀(recursion)’ by 위키독스 스택은 deque를 활용해 LIFO(last in first out)/ FIFO(first in first out) 개념을 이해했다. (물론 아직 시간초과의 문제가 발생하는 것을 보면 그 부분도 추가 정리가 필요하다. 그러나 '재귀'는 어렵다. 복잡해지면 2중 3중 for문 구조를 만들던 취코녀에게 더욱 어럽게 느껴진다. 백준 브론즈 레벨에서도 헤매는걸 보면서 실버에 들어가기 전에 한 번 정리하고 넘어가는 게 좋을 거 같다. 재귀의 개념, 지역변수/전역변수 개념, 내가 풀었던 문제를 정리하며 나만의 재귀 cheet sheet를 만들어본다. 1. 재귀의 개념 함수 안에서 함수가 자기자신을 호출하는 것 제한을 두지 않으면 계속해서 돌아가.. 알고리즘 Cheat Sheet #패키지 from math import sqrt #제곱근 from math import gcd #최대공약수 from collections import Counter #딕셔너리 형태로 중복된 원소와 그의 개수 출력 from collections import product #AxB 데카르트의 곱(집합의 곱) from collections import permutations #순열 from collections import combinations #조합 from collections import combinations_with_replacement #중복조합(H) #함수 ##최빈값 구하기 from collections import Counter Counter(n_list).most_common(n) #n_li.. 약수 구하기 활용하기 프로그래머스에서 처음 약수의 개수를 구하는 알고리즘을 만들때 전부 구했더니 시간초과가 발생했다. 해결 방법은 반으로 나눠서 보는것이다. 신기했다. 물론 지금은 모든 약수의 개수를 구해야 풀 수 있는 문제를 풀었지만 1번 문제: 약수의 합이 자기 자신이 되는 숫자 찾아서 형식에 맞게 출력 1. sorted(list(map(int,open(0).read().split()))) 2. print(" + ".join(map(str,yaksu(i)[:-1]))) 리스트에 있는 원소 사이에 + 추가해서 추출 *str형식이여야함 2번 문제: 소수 찾기 for문 두개로 약수 개수 확인하고 소수 개수 출력하기 9506번: 약수들의 합 #약수의 합이 자기 자신이 되는 숫자 찾아서 형식에 맞게 출력 # sorted(list(.. 괜히 어렵게 풀었다! 백준 2차원 배열에서 최대값의 행,열 정보 추출 - list(map(int, open(0).read().split() - 9x9 행렬일때 index값을 9로 나눈 몫과 나머지로 행,열 정보 추출 프로그래머스 2차원 배열에서 행,열 정보로 min,max구하기 - for i in range(len(wall): for j in range(len(wall[i]): # i = 행, j = 열 백준 2566번: 최댓값 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net # list(map(int,open(0).read().split()))를 .. 간단하게 접근하기 Point 백준 기준 리스트에 있는값이 입력된 단어에 있으면 한글자 단어로 바꾸고 단어 길이 세기 프로그래머스 문자열에서 일부분 "*"로 바꾸기 ☆정규식 없이 길이로 문자 다시 만들기! 백준 2941번: 크로아티아 알파벳 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net #cr_list에 있는값이 입력된 단어에 있으면 1글자 단어로 바꾸고 단어 길이 세기 cr_list = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="] word = .. 슬라이싱과 넘파이 활용하기 Point 백준 1. 리스트[1:]부터 평균을 구하고 2. 평균보다 큰 원소의 개수 구하기 ☆ "{:.3f}%".format 소수점 3번째까지 출력하기 프로그래머스 행렬의 덧셈 numpy 활용 ☆ tolist(): array지우고 리스트 형태로 출력 백준 4344번: 평균은 넘겠지 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net #리스트[1:]부터 평균을 구하고, 평균보다 큰 원소의 개수 구하기 #"{:.3f}%".format 소수점 3번째까지 출력하기 num = int(input()) for _ in range(num): num_list = list(map(int, input().sp.. 이전 1 다음