728x90

분류 전체보기 199

[Python] [D3] 1225. 암호생성기 ( 큐 )

출저 : SW Expert Academy 1225번 암호 생성기 문제. 문제 : 다음 주어진 조건에 따라 n개의 수를 처리하면 8자리의 암호를 생성할 수 있다. - 8개의 숫자를 입력 받는다. - 첫 번째 숫자를 1 감소한 뒤, 맨 뒤로 보낸다. 다음 첫 번째 수는 2 감소한 뒤 맨 뒤로, 그 다음 첫 번째 수는 3을 감소하고 맨 뒤로, 그 다음 수는 4, 그 다음 수는 5를 감소한다. 이와 같은 작업을 한 사이클이라 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 # T = 1 # f..

알고리즘/SWAE 2021.03.04

[Python] 큐의 구조

큐 - 선입 선출 ( FirstInFirstOut - FIFO ) 공백 큐 생성createQueue() -1 || front = rear= -1 0 || 1 || 원소 a 삽입 enQueue(A); -1 || front = -1 0 || A가 삽입됨 || rear 1 || 원소 B삽입 : enQueue(B) -1 || front = -1 0 || A가 삽입됨 || 1 || B가 삽입됨 || rear front = -1 선형 큐 - 문제점 잘못된 포화상태 인식 선형 큐를 이용하여 원소의 삽입과 삭제를 계속할 경우, 배열의 앞 부분에 활용할 수 있는 공간이 있음에도 불구하고, rear = n-1 인 상태 즉, 포화상태로 인식 더이상 삽입을 수행하지 않는다. 0 || 1 || 2 || front 3 || re..

[Python] (D2) 4871.그래프 경로 // DFS 응용 문제

DFS(깊이 우선 탐색) - 그래프 깊이에 따라 우선적으로 탐색(깊은 부분부터) 과정 1. 탐색 4방향 탐색 ex ) 우하좌상 dr = [1,0,-1,0 ] dc = [ 0,-1,0,1] for i in range(4): nextr = r+ dr[i] nextc = c+ dc[i] 를 응용하여 탐색 알고리즘을 만들어주자 1234567891011121314151617181920212223242526def search(s): stack.append(s) visited[s] = 1 while stack: if s == g: return 1 else: for i in node[s]: if not visited[i]: visited[i] = 1 stack.append(i) s = stack.pop() return..

알고리즘/SWAE 2021.03.02

[SWAE-Python] 2805. 농작물 수확하기. 4866. 괄호 검사.

2805. 농작물 수확하기 자세한설명은 코딩을 보세욘! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 T = int(input()) # 테스트케이스 for tc in range(1, T + 1): N = int(input()) # N 배열 # 공백이 없으면 문자열로 가져와서 정수형으로 바꿔야함 farm = [list(map(int, input())) for _ in range(N)] mid = N // 2 s = e = mid ans = 0 for i in range(N): # 각 행에 대해서 s~ e의 내용을 읽는다. for j in range(s, e + 1): ans += farm[i][j] if i

카테고리 없음 2021.02.25

[Python] 스택 2

계산기 - 문자열로 된 계산식이 주어질 때, 스택을 이용하여 이 계산식의 값을 계산할 수 있다. - 문자열 수식 계산의 일반적 방법 ㄱ. 중위 표기법 수식 > 후외 표기법으로 변경 ㄴ. 후위 표기법 수식을 스택을 이용 계산 여기서, 중위 표기법이란? [ A+B 와 같이 일반적으로 우리가 사용하는 식 ] 후위 표기법이란? [ AB+ 연산자를 뒤로 보내 표기하는 방식 ] 일반식 : A*B-C/D 변환하는 방법 : 1. 수식의 각 연산자에 대해 우선순위에 따라 괄호 표현실시 ( (A*B)-(C/D) ) 2. 각 연산자를 그에 대응하는 오른쪽 괄호의 뒤로이동 ( (AB) *(CD) / )- 3. 괄호 제거 AB*CD/- 저의 방법 1. 일단 수식을 전부 적어줍니다. ABCD 2. 식의 우선순위에 따라 연산자를 ..

[Python] - D2 - 2005. 파스칼의 삼각형

간단하게 말해보자면 1. 파스칼의 규칙을 가지고있다. 2. 첫 번째 줄은 항상 1 3. 두 번째 줄부터 각 숫자들은 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성된다. ex ) if N = 4 N | 그래프 1번째 | 1 2번째 | 1 1 3번째 | 1 2 1 4번째 | 1 3 3 1 단, 우리가 출력할때는 그냥 1 1 1 1 2 1 1 3 3 1 이렇게 출력하게 하면됩니당. 풀이방법 123456789101112131415161718T = int(input())for tc in range(1,T+1): N = int(input()) ans = [[1]] for i in range(1,N): row = [1] for j in range(len(ans[-1])-1): total = 0 for k in ran..

알고리즘/SWAE 2021.02.23

[Python] 스택

스택 - 물건을 쌓아 올리듯 자료를 쌓아 올린 자료구조 형태 - 스택에 저장 된 자료는 선형 구조 선형 :1:1 구조 관계 갖음 비선형 : 1:N 구조 - 스택에 자료를 삽입하거나 스택에서 자료를 꺼낼 수 있다. - 마지막에 삽입한 자료를 가장 먼저 꺼낸다. (후입 선출) 구현을 위한 자료구조, 연산 자료구조 : 자료를 선형으로 저장할 저장소 - C언어에서는 배열을 사용할 수 있다. - 저장소 자체를 스택이라 부르기도 한다. - 스택에서 마지막 삽입된 원소의 위치를 top이라 부른다. 연산 - 삽입 : 저장소에 자료를 저장한다. 보통 push라고 부른다. - 삭제 : 저장소에서 자료를 꺼낸다. 꺼낸 자료는 삽입한 자료의 역순으로 꺼낸다 . 보통 pop이라 함 - 스택이 공백인지 아닌지 확인 : isEmp..

[SWAE-Python] 2001. 파리퇴치, 1966. 숫자를 정렬하자

2001. 파리퇴치 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 T = int(input()) # 테케입력 for tc in range(1,T+1): N, M = map(int,input().split()) #배열 N, 파리채 크기 M arr = [list(map(int,input().split())) for _ in range(N)] # 파리 가 들어가있는 공간 및 개수 배열 만들기. n = M-1 max_v = 0 #N-M+1 범위의 인덱스만큼 순회 for i in range(N-M+1): # for j in range(N-M+1): sum_v = 0 # 죽은 파리 초기화 #해당 인덱스에서 MxM 범위 내 원소합을 저장 for di in range(M):..

카테고리 없음 2021.02.20
728x90