목록분류 전체보기 (198)
포도가게의 개발일지
https://www.acmicpc.net/problem/2617 2617번: 구슬 찾기 모양은 같으나, 무게가 모두 다른 N개의 구슬이 있다. N은 홀수이며, 구슬에는 번호가 1,2,...,N으로 붙어 있다. 이 구슬 중에서 무게가 전체의 중간인 (무게 순서로 (N+1)/2번째) 구슬을 찾기 위해서 www.acmicpc.net 중점 : 구슬을 무게 순으로 뒀을때 절대 가운데로 올 수 없는 구슬의 개수를 찾는 문제다 접근법 1. 구슬이 5개일때 자신보다 3개이상의 구슬이 본인보다 무겁거나 가볍다면 그 구슬을 절대 가운데에 올 수 없다. 2. bfs나 dfs를 이용하여 본인의 자식노드 or 손자노드가 3개이상이면 절대 중간에 올 수 없다. 3. 구슬을 무거운 순으로 한번 정렬하고 가벼운 순으로 한번 정렬한..
0주차 과제를 끝내고 알고리즘1주차가 지났다 hello world!출력하는 거 부터 다들 많이 틀렸던 것 같다 문제를 주의깊게 읽어야 되는것을 1번 문제부터 배웠다 ㅋㅋㅋ 아직 사람들이랑 서먹하지만 다들 정말 열심히 하시고 서로 배려해주시기 때문에 금방 친해지고 있는 것 같다. ㅎㅎ 운영진분들이 면담도 많이 해주시는데 왜 알고리즘을 해야되는지 깨닫게 됬고 정글 커리큘럼이 얼마나 좋은지 알게 되었다. 4주차 이후에 알고리즘이 끝나고 다가오는 프로젝트들이 너무 걱정 되지만... 앞에 놓인걸 하다보면 끝나있겠지
https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 1. DFS를 이용한 빙산 개수찾기 import sys sys.stdin = open('inputs.text') sys.setrecursionlimit(10000) y,x = map(int,sys.stdin.readline().split()) matrix = [] visit_check = [[0] * x for _ in range(y)] for _ in range(y): matrix.appe..
https://www.acmicpc.net/problem/2294 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주 www.acmicpc.net 1. 이것을 이제 python으로 bfs를 이용하여 구현하면 이렇다 from collections import deque import sys #sys.stdin = open('inputs.text') n, target = map(int, sys.stdin.readline().split()) check_list = [0 for _ in range(target+1)] #..
https://www.acmicpc.net/problem/2637 2637번: 장난감 조립 첫째 줄에는 자연수 N(3 ≤ N ≤ 100)이 주어지는데, 1부터 N-1까지는 기본 부품이나 중간 부품의 번호를 나타내고, N은 완제품의 번호를 나타낸다. 그리고 그 다음 줄에는 자연수 M(3 ≤ M ≤ 100)이 주 www.acmicpc.net import sys from collections import deque ## 문제입력을 조금이라도 편하게 받기 위해 배움 동일폴더가 아니면 경로설정이 필요하다 ## #sys.stdin = open('inputs.text') num = int(sys.stdin.readline()) index = int(sys.stdin.readline()) ## vertex 의 몇개의 ..
https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 1. 첫번째 접근 방법 노드를 타고 들어가 마지막 노드가 1일경우 값을 return해주어 자신의 상위 노드가 누구인지 확인한다(시간초과) import sys sys.setrecursionlimit(100000) num = int(sys.stdin.readline()) arr = [[] for _ in range(100000)] loca = [0] * 100000 answer = [] for q in range(num-1): a,b = map(int,sys.st..
https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net import sys from collections import deque r,c = map(int,sys.stdin.readline().split()) matrix = [] ## 도치의 위치 ## S_loca = [] ## 물의 위치들 ## water_loca = [] queue = deque() ## 물의 위치와 도치의 위치를 찾는다 ## for x in range(r): temp = [] count = 0..
https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 백준 1987 알파벳 - 첫 풀이(시간초과) import sys r, c = map(int,sys.stdin.readline().split()) matrix = [] for i in range(r): arr=[] temp = sys.stdin.readline().rstrip() for j in temp: arr.append(j) matrix.append(arr) def dfs(start,v..