일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리스트
- 백준 1535
- 파이썬
- 백준_2178
- LCS2
- 8-queen
- list
- BFS
- 미로탐색
- 소수찾기
- BOJ 2606
- 백준 2606
- 증가하는 부분수열 2
- 알고리즘
- 냅색
- 백준
- dfs
- 가장 긴 증가하는 부분수열
- 백준 12015
- 대소비교
- 평범한 배낭
- boj 11053
- python
- 백준 9252
- 12865
- 데카르트 곱
- 프로그래머스
- 타겟 넘버
- 9663
- 2606
- Today
- Total
목록분류 전체보기 (37)
Devlog_by_0giru

N = int(input()) array = list(map(int, input().split())) dp = [1 for i in range(N)] temp_list = list() for i in range(N): for j in range(i): if array[i] > array[j]: temp_list.append(dp[j]+1) temp = max(temp_list) dp[i] = temp temp_list.clear() print(max(dp)) for i in range(N): for j in range(i): if array[i] > array[j] and dp[j] + 1 > dp[i]: dp[i] = dp[j] + 1 print(max(dp)) 두 코드 모두 맞는 코드이고 동일하게 아..
from itertools import combinations N, M = map(int, input().split()) graph = list() distance_list = list() result_list = list() result = list() min_val = 0 temp_list = list() for _ in range(N): graph.append(list(map(int, input().split()))) # 치킨집 좌표 구하기 chk_list = list() for i in range(N): for j in range(N): if graph[i][j] == 2: chk_list.append((i, j)) # 치킨집 좌표 M개 조합 구하기 cPositions = list(combinat..
# 알파벳 https://www.acmicpc.net/problem/1987 import sys from string import ascii_uppercase sys.setrecursionlimit(10000) R, C = map(int, input().split()) graph = [] rest = list(ascii_uppercase) count = 0 max_count = 0 dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] for _ in range(R): read = sys.stdin.readline().rstrip() graph.append(read) def Search(par_x, par_y): global count global max_count count += 1 if ..
파이썬에서 리스트를 사용할 때에는 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)를 반드시 고려하여 사용하여야 한다. 먼저 파이썬 얕은 복사의 대표적인 예를 보자. temp = list() temp.append(1) temp.append(2) temp.append(3) temp_anther = temp print(id(temp)) print(id(temp_anther)) 이 코드의 실행 결과는 아래와 같다. 1859362000832 1859362000832 대입연산자 = 를 이용해 리스트를 복사하면, 복사 된 리스트는 피 복사된 리스트와 같은 메모리 공간을 공유하게 된다. 따라서 temp 리스트의 데이터를 수정하게 되면 temp_another 리스트의 데이터도 동일하게 수정된다. te..
dfs를 통해 배추의 묶음을 판단하는 문제이다. 2667번 단지번호 붙이기와 문제의 접근법이 완전히 동일하게 dfs로 접근하면 어렵지 않게 풀 수 있다. 다른점이 있다면, 이 문제는 여러 테스트 케이스에 대해서 다르게 출력할 수 있게 따로 설정해 주어야 한다는 점이다. # 유기농 배추 import sys sys.setrecursionlimit() def dfs(par_y, par_x): if par_x >= M or par_y >= N or par_x
코딩을 하다 보면 대수 비교, 조건문 그리고 여러가지 이유 등으로 무한대의 값을 갖는 수를 이용해 대소 비교를 해야 한다. 파이썬에서는 float('inf') 키워드를 이용해 무한대 값을 사용할 수 있다. val1 = float('inf') val2 = 99999999999999999999999999999 if val1 > val2: print('val1 is bigger') elif val1 < val2: print('val2 is bigger') elif val1== val2: print('same') 위와 같은 코드를 실행하면 항상 val1 is bigger 이라는 출력을 얻게 된다. '99999999999999999999999999999보다 더 큰 수를 비교하면?' 이라는 의문이 들 수 있지만 필..
파이썬은 리스트(배열)을 처리하기 아주 좋은 언어이다. 프로그래밍을 하다 보면 리스트가 비어있음을 이용해 유용하게 루프나 조건문을 코딩할 수 있었다. temp_list = [] if not temp_list: print("this list is empty") 위 코드를 실행하면 'this list is empty' 가 출력된다. 비어있지 않은 리스트는 True로, 비어있는 리스트는 False를 "반환한다." 라는 말이 정확한 표현인지는 모르겠으나, 위 코딩을 통해 유용하게 조건문 혹은 루프를 구성할 수 있었다.
# 테스트 케이스 2 통과 / 실패 def solution(tickets): nation_num = len(tickets) graph = [] graph_new = [] result = [] for inf in tickets: graph.append([inf[0]]) for inf in tickets: for i in range(nation_num): if inf[0] == graph[i][0]: graph[i].append(inf[1]) for inf in graph: if inf not in graph_new: graph_new.append(inf) for inf_new in graph_new: temp1 = inf_new[0] inf_new.sort() temp2 = inf_new.index(tem..