코딩 테스트
프로그래머스, 백준 등 온라인 코딩 플랫폼을 활용해 프로그래밍하고, 알고리즘과 자료구조를 학습하는 내용을 담습니다.
-
문제 보기 : 15649번: N과 M (1) 문제정답률 : 63%작성 코드def per(n,new): global arr answer = [] if len(new)==n: return [new] for i in range(len(arr)): if not visited[i]: visited[i]=True answer.extend(per(n,new+[arr[i]])) visited[i]=False return answern,m = map(int, input().split()) #1부터 n까지, m개arr = [i for i in range(1,n+1)]visited = [False]*nk = pe..
S3 15649. N과 M (1)문제 보기 : 15649번: N과 M (1) 문제정답률 : 63%작성 코드def per(n,new): global arr answer = [] if len(new)==n: return [new] for i in range(len(arr)): if not visited[i]: visited[i]=True answer.extend(per(n,new+[arr[i]])) visited[i]=False return answern,m = map(int, input().split()) #1부터 n까지, m개arr = [i for i in range(1,n+1)]visited = [False]*nk = pe..
2024.10.30 -
문제 보기 : 7576번: 토마토 문제정답률 : 37%작성 코드from collections import dequedef bfs(graph): directions = [(-1,0),(0,-1),(0,1),(1,0)] while dd: x,y = dd.popleft() for dx,dy in directions: xx = x+dx ; yy = y+dy if 0= 1: print(count-1)else: print(0)풀이bfs 알고리즘을 사용했고, bfs 함수 내 graph는 '입력'으로 받는 ls와 같으며, 정석적인 bfs 알고리즘 문제의 visited 리스트를 담당하기도 한다.가로 m, 세로 n에 해당하는 리스트를 ..
G5 7576. 토마토문제 보기 : 7576번: 토마토 문제정답률 : 37%작성 코드from collections import dequedef bfs(graph): directions = [(-1,0),(0,-1),(0,1),(1,0)] while dd: x,y = dd.popleft() for dx,dy in directions: xx = x+dx ; yy = y+dy if 0= 1: print(count-1)else: print(0)풀이bfs 알고리즘을 사용했고, bfs 함수 내 graph는 '입력'으로 받는 ls와 같으며, 정석적인 bfs 알고리즘 문제의 visited 리스트를 담당하기도 한다.가로 m, 세로 n에 해당하는 리스트를 ..
2024.10.30 -
문제 보기 : 2606번: 바이러스 문제정답률 : 46%작성 코드def dfs(graph,start,visited): visited[start]=True answer = 1 for node in graph[start]: if not visited[node]: answer += dfs(graph,node,visited) return answerT = int(input())n = int(input())graph = {i+1:[] for i in range(T)}for _ in range(n): n1,n2 = map(int,input().split()) graph[n1].append(n2) graph[n2].append(n1)visited..
S3 2606. 바이러스문제 보기 : 2606번: 바이러스 문제정답률 : 46%작성 코드def dfs(graph,start,visited): visited[start]=True answer = 1 for node in graph[start]: if not visited[node]: answer += dfs(graph,node,visited) return answerT = int(input())n = int(input())graph = {i+1:[] for i in range(T)}for _ in range(n): n1,n2 = map(int,input().split()) graph[n1].append(n2) graph[n2].append(n1)visited..
2024.10.25 -
문제 보기 : 1463번: 1로 만들기 문제정답률 : 33%작성 코드from collections import dequedef find1(n): visited = [-1]*(n+1) visited[n] = 0 dd = deque([n]) while dd: now = dd.popleft() can = [] if now % 3 ==0: can.append(now//3) if now%2 == 0: can.append(now//2) can.append(now-1) for value in can: if visited[value]== -1: ..
S3 1463. 1로 만들기문제 보기 : 1463번: 1로 만들기 문제정답률 : 33%작성 코드from collections import dequedef find1(n): visited = [-1]*(n+1) visited[n] = 0 dd = deque([n]) while dd: now = dd.popleft() can = [] if now % 3 ==0: can.append(now//3) if now%2 == 0: can.append(now//2) can.append(now-1) for value in can: if visited[value]== -1: ..
2024.10.25 -
문제 보기 : 9012번: 괄호 문제정답률 : 46%작성 코드T = int(input())for _ in range(T): check = input() if len(check)%2!=0: print('NO') continue calcul = 0 ; a = True for i in check: if i=='(': calcul += 1 elif i == ')': calcul -= 1 if calcul 풀이시간초과가 날까봐 무서웠는데 그런 이슈 없이 넘어갔다. 괄호는 무조건 짝수개로 쌍을 이루니, 홀수개인 상황으로 예외처리를 했다.그리고 calcul을 계산하는데 '('이 등장하면 +1,..
S4 9012. 괄호문제 보기 : 9012번: 괄호 문제정답률 : 46%작성 코드T = int(input())for _ in range(T): check = input() if len(check)%2!=0: print('NO') continue calcul = 0 ; a = True for i in check: if i=='(': calcul += 1 elif i == ')': calcul -= 1 if calcul 풀이시간초과가 날까봐 무서웠는데 그런 이슈 없이 넘어갔다. 괄호는 무조건 짝수개로 쌍을 이루니, 홀수개인 상황으로 예외처리를 했다.그리고 calcul을 계산하는데 '('이 등장하면 +1,..
2024.10.23 -
문제 보기 : 10844번: 쉬운 계단 수 문제정답률 : 30%작성 코드 & 풀이 과정 코멘트longg = int(input())from collections import dequeanswer = 0start = [str(i) for i in range(1,10)]start = deque(start)while start: st = start.popleft() if len(st)==longg: answer += 1 elif int(st[-1]) == 0: #10 start.append(st+"1") elif int(st[-1]) == 9: start.append(st+"8") else: start.append(st+ str(in..
S1 10844. 쉬운 계단 수문제 보기 : 10844번: 쉬운 계단 수 문제정답률 : 30%작성 코드 & 풀이 과정 코멘트longg = int(input())from collections import dequeanswer = 0start = [str(i) for i in range(1,10)]start = deque(start)while start: st = start.popleft() if len(st)==longg: answer += 1 elif int(st[-1]) == 0: #10 start.append(st+"1") elif int(st[-1]) == 9: start.append(st+"8") else: start.append(st+ str(in..
2024.10.23 -
문제 보기 : 2156번: 포도주 시식 문제정답률 : 32%작성 코드T = int(input())wine = [0]*(T+1)for i in range(1,T+1): wine[i]=int(input())cost = [0]*(T+1)# wine = [0, 6, 10, 13, 9, 8, 1]# cost = [0, 6, 16, 19, ...]if T>=1: cost[1] = wine[1]if T>=2: cost[2] = wine[1]+wine[2]if T>=3: cost[3] = max(wine[1]+wine[2],wine[1]+wine[3],wine[2]+wine[3])for i in range(4, T+1): cost[i] = max(cost[i-1], cost[i-2]+win..
S1 2156. 포도주 시식문제 보기 : 2156번: 포도주 시식 문제정답률 : 32%작성 코드T = int(input())wine = [0]*(T+1)for i in range(1,T+1): wine[i]=int(input())cost = [0]*(T+1)# wine = [0, 6, 10, 13, 9, 8, 1]# cost = [0, 6, 16, 19, ...]if T>=1: cost[1] = wine[1]if T>=2: cost[2] = wine[1]+wine[2]if T>=3: cost[3] = max(wine[1]+wine[2],wine[1]+wine[3],wine[2]+wine[3])for i in range(4, T+1): cost[i] = max(cost[i-1], cost[i-2]+win..
2024.10.22 -
문제 보기 : 1697번: 숨바꼭질 문제정답률 : 26%작성 코드from collections import dequedef find(start,bro): if start >= bro: #동생이 더 앞에 있는 경우 return start-bro visited = [-1]*100001 visited[start] = 0 dd = deque([start]) while dd: now = dd.popleft() can = (now-1,now+1,2*now) for jump in can: if jump == bro : return visited[now]+1 if 0풀이1차원..
S1 1697. 숨바꼭질문제 보기 : 1697번: 숨바꼭질 문제정답률 : 26%작성 코드from collections import dequedef find(start,bro): if start >= bro: #동생이 더 앞에 있는 경우 return start-bro visited = [-1]*100001 visited[start] = 0 dd = deque([start]) while dd: now = dd.popleft() can = (now-1,now+1,2*now) for jump in can: if jump == bro : return visited[now]+1 if 0풀이1차원..
2024.10.22