일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 17779
- MSA
- Spring Boot
- 백준 16236
- java
- 백준 16235
- java 기술면접
- with recursive
- spring security
- 백준 17626
- spring cloud
- 백준 파이썬
- 웹어플리케이션 서버
- Spring
- re.split
- Coroutine
- 백준 15685
- JVM
- 백준 19238
- 프로래머스
- 파이썬
- Kotlin
- JPA
- spring oauth
- 프로그래머스
- springboot
- 백준
- MySQL
- 백준 16719
- sql 기술면접
- Today
- Total
목록파이썬 (92)
시작이 반
NxN행렬을 검사한뒤 일괄된 숫자가 아니면 9등분 하는 문제이다. 9등분한 행렬을 각각 다시 재귀를 돌려서 검사한다. 백준 1021번 문제와 유사한 문제이다. tmdrl5779.tistory.com/100 [백준] 1021번 (python 파이썬) ex) 10 3 2 9 5 2 queue = 1 2 3 4 5 6 7 8 9 10 왼쪽으로 회전 1번 queue = 2 3 4 5 6 7 8 9 10 1 pop 9 queue = 3 4 5 6 7 8 9 10 1 오른쪽으로 회전 3번 queue = 9 10 1 3 4 5 6 7 8 pop 5 queue = 10 1 3 4 5.. tmdrl5779.tistory.com n = int(input()) graph = [list(map(int, input().spli..
백준 2630문제와 같은 문제이다. tmdrl5779.tistory.com/101 [백준] 2630번 (python 파이썬) Divide and Conquer에 대한 문제이다. 1. 해당 종이가 일괄된 색이 아니면 4등분을 한다. 2. 4등분된 종이를 다시 검사한다. 1, 2를 일괄된 색일때까지 반복한다. 처음 푼방법 종이를 모든 수에 대해 검사 tmdrl5779.tistory.com 출력부분만 고려하면 된다. n = int(input()) graph = [list(map(int, input())) for _ in range(n)] def dnc(x, y, n): check = graph[x][y] for i in range(x, x + n): for j in range(y, y + n): if chec..
Divide and Conquer에 대한 문제이다. 1. 해당 종이가 일괄된 색이 아니면 4등분을 한다. 2. 4등분된 종이를 다시 검사한다. 1, 2를 일괄된 색일때까지 반복한다. 처음 푼방법 종이를 모든 수에 대해 검사하고 4등분된 종이를 list로 만들어서 다시 재귀를 돌렸다. n = int(input()) graph = [list(map(int, input().split())) for _ in range(n)] blue_count = 0 white_count = 0 def makePaper(graph): if validPaper(graph): return left_top = list() right_top = list() left_bottom = list() right_bottom = list() ..
ex) 10 3 2 9 5 2 queue = 1 2 3 4 5 6 7 8 9 10 왼쪽으로 회전 1번 queue = 2 3 4 5 6 7 8 9 10 1 pop 9 queue = 3 4 5 6 7 8 9 10 1 오른쪽으로 회전 3번 queue = 9 10 1 3 4 5 6 7 8 pop 5 queue = 10 1 3 4 5 6 7 8 오른쪽으로 회전 4번 queue = 5 6 7 8 10 1 3 4 pop 총 횟수 8번 핵심은 오른쪽으로 회전할지 왼쪽으로 회전할지 정하는 것이다. 타겟에 대해 index를 계산하여 판단한다. from collections import deque import sys input = sys.stdin.readline n, m = map(int, input().split()) ..
n까지의 숫자가 주어졌을때 1 ~ n을 스택에 push하고 언제 pop할 것인지 정하면된다. ex) 입력 n = 8 list = 4 3 6 8 7 5 2 1 일때 1 ~ 8까지 스택에 차례로 push를 하면서 스택의 top과 list[j]의 숫자가 같다면 pop을 하고 j 를 1증가시킨다. import sys input = sys.stdin.readline n = int(input()) input_number = list(int(input()) for _ in range(n)) stack = list() result = list() j = 0 for i in range(1, n+1): stack.append(i) result.append('+') while stack and input_number[j] ..
백준의 9012 괄호문제와 비슷한 문제이다. 문자열에서 '('와 '['를 만나면 stack에 쌓아준다. ']'를 만나면 stack의 top을 확인하여 '['일때 pop을 해주고 아니면 no를 출력한다. 마찬가지로 ')'를 만나면 stack의 top을 확인하여 '('일때 pop을 해주고 아닐때 no를 출력한다. 이전에 풀었던 9012의 코드를 이용해서 풀어서 출력이 소문자인 것을 확인 못하고 계속 왜 틀렸는지 생각했다... (시간 날림....) import sys input = sys.stdin.readline while True: string = list(input()) string.pop() if string[0] == '.' and len(string) == 1: break ps = list() sm..
스택에 관련된 문제이다. '('을 확인하면 stack에 쌓고 ')'을 확인하면 stack에서 pop한다. t = int(input()) for _ in range(t): ps = list(input()) stack = list() is_empty = False for i in range(len(ps)): if ps[i] == '(': stack.append(ps[i]) else: if not stack: is_empty = True break else: stack.pop() if not stack and not is_empty: print('YES') else: print('NO')
조합을 구하는 문제이다. 하지만 같은 종류의 옷은 동시에 입을 수 없다. 즉, 같은 종류의 옷들을 묶은다음 해당 종류별로 경우의 수를 곱해주면 된다. 만약 hat headgear sunglasses eyewear turban headgear 가 있다면 headgear : 2개 eyewear : 1개이다. (dict을 이용하면 된다.) 이러면 headgear을 고를 경우의 수 ( 2 + 1 (hat, turban, 아무것도 안고를 경우)) eyewaer을 고를 경우의 수 ( 1 + 1 (sunglasses, 아무것도 안고를 경우)) = 6인데 문제에서 아무것도 안입으면 안되기 때문에 여기서 아무것도 안입는 경우 1을 빼준다. 6-1이 답이다. 처음에는 파이썬의 combination을 사용하여 풀었지만 메모..