분류 전체보기
[취준일기#1] 프로그래머스 2023 Summer Coding 스타트업 인턴십
# 정보 프로그래머스 2023 썸머 코딩 스타트업 인턴십 # 진행 단계 코딩테스트 / 알고리즘( 2솔 / 3 ) SQL ( 0/ 1 ) -> 불합 # 내용 서류 전형 전달전 모든 지원대상들에게 먼저 코딩테스트를 보게 한 후, 합격자들을 선정하여 서류를 회사에 전달하는 방식이다. 서서히 취준을 해야하는 시기가 왔고, 인턴을 하고 싶은 회사도 딱히 없었다. 알고리즘 공부를 시작했기 때문에 백준말고 실제 코딩테스트에 대한 경험이 필요하다고 생각해서 지원했다. 코딩테스트의 전반적인 난이도는 쉬웠다. 그러나 SQL을 준비하지 않았기에 문제를 풀 생각조자 안했다. 쉬운만큼 커트도 높은걸로 예상된다. 아마 3솔 이상이 합격하지 않을까 싶다. # 후기 쉽게 나왔음에도 불구하고 알고리즘 3번문제를 풀지 못했다. 특히 그..
[백준1932&파이썬] DP를 이용할때 확정지을 노드를 선택하는 기준과 근거가 필요하다.
# 문제 백준 1932 정수 삼각형 파이썬 풀이 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net # 코드 import sys n = int(sys.stdin.readline().strip()) arr = list() for _ in range(n) : line = list(map(int,sys.stdin.readline().split())) arr.append(line) for row in range(1,n): for col in range(len(arr[row])) : if col == 0 : # 시작점이면 arr[row][col] += arr[row-1][col] continu..
[백준9465&파이썬] DP를 풀때는 N이 1일때부터 하나씩 늘려가며 경우의 수를 따져보자.
# 문제 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net # 코드 import sys def solve() : n = int(sys.stdin.readline().strip()) stickers = list() for row in range(2): line = list(map(int, sys.stdin.readline().split())) stickers.append(line) # 현재 시점에서 대각선으로 한칸전과 두칸전 중 max값이 그 스티커의 최대값 for i in range(1,n) : if..
[백준1149&파이썬] DP를 사용할때 확정되는 값에 대한 명확한 근거를 찾자
# 문제 백준 1149 RGB 거리 파이썬 풀이 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net # 코드 ''' - 집을 조건에 맞게 칠할때, 최소 비용을 구해라 - 중점을 두는 것을, 현재 값에 중점을 두고 과거를 봐야한다. ''' import sys N = int(sys.stdin.readline().strip()) arr = list() # RGB로 칠하는 비용 for _ in range(N): line = list(map(int, sys.stdin.readline().split()..
[백준1991&파이썬] 파이썬에서 이진트리의 전위,중위,후위 간단히 수행해보자.
# 문제 백준 1991 트리 순회 파이썬 풀이 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net # 코드 import sys from collections import defaultdict N = int(sys.stdin.readline().strip()) graph = defaultdict(lambda : defaultdict(str)) LEFT = 1 RIGHT = -1 for _ in range(N) : parent, left, right = sys.stdin.readline().split() ..
[백준16953&파이썬] BFS를 이용해 1차원 탐색하기
# 문제 백준166953 A->B 파이썬 풀이 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net # 코드 ''' - BFS를 이용한 전형적인 풀이 같다. ''' import sys from collections import deque from collections import defaultdict A, B = map(int, sys.stdin.readline().split()) dq = deque() visit = defaultdict(bool) dq.append((A, 1)) visit[A] = True # 초기 방문 while len(dq) != 0: cur = dq.popleft() # ( node, cnt ) next1 = (cu..