Python/[강의] 파이썬 알고리즘 문풀
2) 탐색&시뮬레이션
1. 회문 문자열 검사 해답 #1: 문자열을 하나씩 s에 입력받아 s의 len 절반만큼 for문을 돌아 앞과 뒤의 문자를 비교해준다. n = int(input()) res = [] for i in range(n): s = input() #문자열 하나씩 입력받아 처리 s = s.upper() #전부 대문자화 size = len(s) for j in range(size//2): if s[j]!=s[-1-j]: res.append("#%d NO" %(i+1)) break else: res.append("#%d YES" %(i+1)) for x in res: print(x) 해답 #2: 이게 간지다.. n = int(input()) res = [] for i in range(n): s = input() #문자열..
1) 코드 구현력 기르기
1. k번째 약수 답은 맞았는데.. 'k번째'의 약수를 구하는 것이 포인트이므로 약수 전부를 구해서 list에 추가할 필요가 없었다. cnt 변수에 약수를 구할 때마다 더해주고, cnt==k일 때 for문에서 break 처리 후 정답 출력 for-else 구문 for문에서 중간에 break로 빠져나오지 않고 끝까지 실행됐을 때, 밑에 있는 else문이 실행된다. N,K = map(int, input().split()) cnt = 0 for i in range(1,N+1): if N%i==0: cnt+=1 if cnt==K: print(i) break else: # 약수를 발견못했을 때 print(-1) 2. k번째 수 리스트 슬라이싱 사용 T = int(input()) for _ in range(T):..
자료구조 활용 [개념]
스택 (Stack) 나중에 입력된 데이터가 먼저 출력되는 LIFO 자료구조 (하노이의 탑..) 파이썬에서는 리스트 자료형을 사용하여 스택 구조로 데이터를 처리할 수 있다. 리스트로 데이터의 입출력을 하려면 아래와 같은 함수를 사용한다. 데이터 입력: push → append() 데이터 출력: pop → pop() pop은 데이터 맨 마지막 값을 뽑아 반환시켜 준다. pop으로 뽑아낸 데이터는 리스트에서 없어진다. stack = [] # 빈 리스트 선언 stack.append(2) stack.append(5) stack.append(8) # stack: [2,5,8] stack.pop() # 8 stack.pop() # 5 stack.pop() # 2 큐 (Queue) 가장 먼저 입력된 데이터가 가장 먼저..
리스트 순회
https://dojang.io/mod/page/view.php?id=2292 파이썬 코딩 도장: 23.2 반복문으로 2차원 리스트의 요소를 모두 출력하기 이제 반복문을 사용하여 2차원 리스트의 요소를 모두 출력하는 방법을 알아보겠습니다. 23.2.1 for 반복문을 한 번만 사용하기 먼저 for 반복문을 한 번만 사용하는 방식입니다. >>> a = [[10, 20], [30, dojang.io 1. for 반복문을 한 번 사용하기 a = [[10, 20], [30, 40], [50, 60]] for x,y in a: print(x,y) 2차원 리스트에 for를 사용하면 가로 한 줄씩 반복한다. (전체 리스트 기준으로는 안쪽 리스트가 통째로 반복) for x,y in a 와 같이 in 앞에 변수 두 개를..

리스트 입력
1차원 배열 1. 띄어쓰기 입력 시 하나의 리스트에 저장하기 split(): 특정문자를 기준으로 나누어 받은 문자열을 문자로 분리 map(): 리스트로 입력받은 데이터를 형식에 맞게 변환 ex) int() list(): 리스트로 변환 data = list(map(int, input().split())) 결과> [1,2,3,4] 2. 띄어쓰기로 변수 입력받기 a,b,c = map(int, input().split()) 입력> 1 2 3 결과> a=1, b=2, c=3 3. Enter로 변수 입력받기 arr = [] for i in range(n): # 원소의 개수 n일 때 arr.append(int(input())) 2차원 배열 1. 세로 크기의 리스트 생성하고 한 리스트씩 입력받기 arr = [for ..

파이썬 기초 문법
조건문 (if 분기문, 다중 if문) 1) if x>0 and x [1,2,3,7,4,5] a.pop(3) // 3번 인덱스값을 내보내! -> [1,2,3,4,5] a.remove(4) // 4라는 값을 제거해! -> [1,2,3,5] a.index(5) // 5의 인덱스번호를 찾아! -> 3 sum(a) // 리스트 값을 전부 합해! -> 11 max(a) // 리스트 값 중 제일 큰 값 -> 5 min(7,3,5) // 7,3,5중에 가장 작은 값 -> 3 r.shuffle(a) // 리스트 값들을 전부 섞어! -> [3,5,1,2] a.sort() // 오름차순 정렬 -> [1,2,3,5] a.sort(reverse=True) // 내림차순 정렬 -> [5,3,2,1] a.clear() // 리스트..