본문 바로가기

코테 공부

[프로그래머스] #43162 Python 네트워크 https://school.programmers.co.kr/learn/courses/30/lessons/43162 내 풀이 나는 dfs 재귀로 풀었는데 #dfs def dfs(v, visited, computers, li): if not visited[v]: visited[v] = True for i in range(len(computers)): if computers[v][i] == 1: li[-1].append(i) dfs(i, visited, computers, li) def solution(n, computers): visited = [False for i in range(n)] li = [] for l in range(n): if not visited[l]: li.append([]) dfs(l,.. 더보기
[프로그래머스] #43165 Python 타겟넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 내 코드 def solution(numbers, target): answer = recursion(numbers, -1, 0, target) return answer def recursion(numbers, idx, result, target): idx += 1 if idx < len(numbers): cnt1 = recursion(numbers, idx, result + numbers[idx], target) cnt2 = recursion(numbers, idx, result - numbers[idx], target) return cnt1 + cnt2 else: if result == ta.. 더보기
[소프티어] #624 Python 전광판 https://softeer.ai/practice/info.do?idx=1&eid=624 처음에 스터디원이 껏다 키는 전구 자체 위치로 이진수 만들어서 하는 아이디어 안줬으면 못풀었다ㅠ 항상 고맙고 고마운 나의 말랑이 스터디원.. 0과 빈 자리수 전구 세팅 다르단것도 풀면서 결과가 제대로 안나와서 알아채고 빈자리수 표시인 x를 딕셔너리에 추가로 넣어줬다. #https://softeer.ai/practice/info.do?idx=1&eid=624 import sys input = sys.stdin.readline n = int(input()) li = [] for _ in range(n): temp1, temp2 = map(str, input().split()) li.append([temp1, temp2].. 더보기
[프로그래머스] #12945 Python 피보나치 수 https://school.programmers.co.kr/learn/courses/30/lessons/12945# 당연히 재귀 때리면 되겠거니 했는데 파이썬은 다르다고 한다 시간초과 뜨길래 질문하기 보니 재귀가 더 오래걸려서 포문을 하라고 해서 포문으로 돌렸는데 왜.. 풀이 +5점이나 되지..? 드문 풀이 일리가 없는데..!! 그래도 간만에 간단하게 풀려서 좋당.. 내 풀이 def solution(n): temp1 = 0 temp2 = 1 sum = 1 for i in range(3, n + 1): temp1 = temp2 temp2 = sum sum = temp1 + temp2 return sum % 1234567 타풀이 적용 와 그와중에 또 깔끔하게도 풀었다 타풀이.. sum 없이 가면 이렇게 ra.. 더보기
[백준] #2178 Python 미로탐색 bfs https://www.acmicpc.net/problem/2178 처음엔 dfs로 해서 가능한 거리 리스트화해서 그중 가장 작은거 골라야되는건가 하다가 bfs일텐데.. 하며 count 변수 만들어서 어떻게 증가시켜야 하나 고민하다가 결국 다른 풀이 도움을 받고 그래프 자체를 직전 최단거리 +1 로 수정하면 되는구나! 했다 import sys input = sys.stdin.readline from collections import deque N, M = map(int, input().split()) graph = [] for _ in range(N): graph.append(list(map(int, input().rstrip()))) def printgraph(graph): for el in graph:.. 더보기
[백준] #11404 Python 플로이드 워셜 https://www.acmicpc.net/problem/11404 하 처음에 자기 자신으로 가는 i == j 의 경우를 0으로 초기화안해서 요상하게 나왔다.. 이게 아직도 플로이드 워셜의 알고리즘이 완전히 확 와닿지는 않네 중간에 거쳐가는 노드의 순서는 알고리즘에 영향이 없는건가? 뒤에서 더 적은 비용으로 바뀐 걸 앞에서 다시 적용할 수 없는거잖아... 내 수학 머리..ㅠ 아 어차피 중간경유한 순서는 더하기만 하는거고 차피 전체 다 훝으니까 되는 거 같다. 이게 와닿을랑 말랑 한다 무한은 1e9로 설정해주었다 import sys input = sys.stdin.readline INF = 1e9 n = int(input()) m = int(input()) bus_map = [[INF] * n for _ .. 더보기
[백준] #11403 Python 세미? 플로이드 워셜 https://www.acmicpc.net/problem/11403 가중치가 없어서 플로이드 워셜처럼 가중치 min 따져서 짜야할 필욘 없었다. 근데 방향 그래프인걸 양방향이라고 당연히 생각해서 첨에 잘못나오고 슬퍼했었다.. import sys input = sys.stdin.readline N = int(input()) li = [] for _ in range(N): li.append(list(map(int, input().split()))) def Floyd(li, N): for k in range(N): for i in range(N): for j in range(N): if li[i][j] == 0 and li[i][k] == 1 and li[k][j] == 1: li[i][j] = 1 Floyd.. 더보기
[백준] #1260 Python DFS와 BFS https://www.acmicpc.net/problem/1260 내 코드 중간에 link 를 sort하고 했다가 예제는 다 맞는데 제출이 틀려서 스터디원에게 검토받고 graph sort 해야하는걸 겨우 찾았다.... 그마저도 바로 못이해해서 예외를 알려주고 이해한.. 사랑해요 스터디원♥ 보고있나요 import sys from collections import deque input = sys.stdin.readline N, M, V = map(int, input().split()) link = [] for _ in range(M): link.append(list(map(int, input().split()))) graph = [[] for _ in range(N+1)] visited = [False] *.. 더보기