일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 주간회고
- U_stage
- Level2_PStage
- Level2
- 개인회고
- ODQA
- python3
- dp
- 백준
- 최단경로
- mrc
- 단계별문제풀이
- 백트랙킹
- 알고리즘_스터디
- dfs
- 정렬
- Level1
- 이진탐색
- 글또
- 부스트캠프_AITech_3기
- 구현
- 그리디
- 다시보기
- 이코테
- 파이썬 3
- 부스트캠프_AITech3기
- 알고리즘스터디
- 프로그래머스
- 기술면접
- 그래프이론
- Today
- Total
목록dfs (5)
국문과 유목민

"이것이 코딩테스트다(나동빈 저)"에서 나온 문제에 대한 코드를 다루고 있습니다. 문제에 대한 구체적인 설명과 조건 등은 책을 참고해주시기 바랍니다. 소요시간: 30분 + a 1. 문제 설명 - 숫자가 순서대로 N개 주어지고, 연산자가 N-1개 주어진다. 연산자를 수 사이에 넣어서 다양한 식을 만들 때, 그 결과가 최대가 되는 경우와 최소가 되는 경우를 출력하는 문제 2. 접근 방식 - DFS를 활용해서 문제를 푼다. - +, -, *, / 연산자의 개수에 해당하는 만큼 연산을 수행할 수 있게 코드를 만든다. 3. 코드 n = int(input()) data = list(map(int, input().split())) add, minus, mul, div = map(int, input().split())..

"이것이 코딩테스트다(나동빈 저)"에서 나온 문제에 대한 코드를 다루고 있습니다. 문제에 대한 구체적인 설명과 조건 등은 책을 참고해주시기 바랍니다. 소요시간: 40분 + a 1. 문제 설명 - 괄호( '( )')가 주어졌을 때, 이것이 서로 짝이 맞는지 확인하고 맞지 않는다면 짝을 맞출 수 있도록 재귀적으로 코드를 만드는 문제 2. 접근 방식 - DFS라는 것은 문제 설명으로 알 수 있었다. - 하지만 DFS보다는 구현과 관련된 문제라는 생각이 들었다. - 그래서 문제를 푸는데 꽤나 힘들었고, '완전한 문자열'로 만드는 키 아이디어를 생각하지 못해서 결국 해답을 봐버렸다. - 완전한 문자열로 만드는 경우 해답에서는 균형잡힌 문자열을 입력으로 받아서 균형이 안맞는 경우가 생기면 False를 리턴하는 함수..

"이것이 코딩테스트다(나동빈 저)"에서 나온 문제에 대한 코드를 다루고 있습니다. 문제에 대한 구체적인 설명과 조건 등은 책을 참고해주시기 바랍니다. 소요시간: 26분 1. 문제 설명 - 여러 바이러스가 존재하는데 바이러스는 인접한 위치로 전파가 된다. 특정 시간 초 이후에 좌표를 입력으로 줄 때, 해당 좌표의 값은 무엇인지 묻는 문제 2. 접근 방식 - BFS를 활용해서 문제를 풀면 되겠다고 생각을 했다. - 초기에 그래프를 생성할 때 어떤 식으로 그래프를 생성하는 지에 대한 고민이 필요한 문제라고 생각을 했다. - 초기 데이터를 (바이러스 종류, 시간, x좌표, y좌표)를 튜플형태로 묶어서 리스트에 넣어주는 부분을 알고나니 수월하게 문제를 풀 수 있었다. 3. 코드 from collections im..

"이것이 코딩테스트다(나동빈 저)"에서 나온 문제에 대한 코드를 다루고 있습니다. 문제에 대한 구체적인 설명과 조건 등은 책을 참고해주시기 바랍니다. 소요시간: 40 +a 1. 문제 설명 - 바이러스를 막기 위해 울타리를 세우는 경우 중 안전지대를 최대한 많이 확보하는 방법을 찾는 문제 2. 접근 방식 - DFS문제인 거 같았다. 하지만 접근 방법을 동서남북을 다 살펴보는 방법까지는 생각했는데 그 이상은 생각하지 못했다. - 결국 해답을 봤을 때, '조합'을 이용하는 문제였다. 참조한 해답지에서는 dfs를 활용해서 조합을 구현했다. - dfs구조를 보게 되면 count가 3일 경우 virus검사를 진행하고, 점수를 출력한다. - 3이 아니라면 계속해서 재귀로 들어가면서 울타리를 치고 또 거두면서 진행한다..
1. 문제 - 특이하게 생긴 얼음 틀에 얼음을 몇 개나 만들 수 있는지를 구함 - 주변에 유사한 값의 개수를 찾는다. 2. 코드 구현 n, m = map(int, input().split()) ice = [] for _ in range(n): ice.append(list(map(int, input()))) # True의 개수만 셀 수 있게 만들어준다. def dfs(x, y): if x =n or y>= m: return False if ice[x][y]==0: ice[x][y] = 1 dfs(x-1, y) dfs(x, y-1) dfs(x+1, y) dfs(x, y+1) return True return False result = 0 for i in range(n): fo..