- 문제 링크 https://www.acmicpc.net/problem/6986 - 풀이 실버 3 난이도의 구현, 정렬 태그가 달려있는 문제였다. 정답률이 25% 밖에 안되서 이 문제가 어렵나 ? 하고 풀어보았다. 직접 풀어보니 절사 평균과 보정 평균을 구할 때 코드상에는 크게 문제가 없었는데 틀려서.. 어 뭐가 문제지 하고 조금 찾아보니 부동소수점에 대한 문제였다. type을 float로 받으면 생기는 문제인데, 해당 문제를 해결하기 위해서는 코드의 맨 밑에 줄을 보면 + 0,00...1 을 더해줌으로서 해결할 수 있다. 절사 평균을 구하기 위해 res 배열에 arr의 K번째 부터 len(arr)-K 곧 전체 배열의 길이-K 의 범위만큼 arr의 값을 append 해줌으로 절사 평균을 구했다. 보정 평..
- 문제 링크 https://www.acmicpc.net/problem/1743 - 풀이 가로 M, 세로 N 길이의 그래프를 만들어주고, 그래프에 음식물 쓰레기의 좌표를 넣어준다. 주의해야 할 점은, 문제에서는 배열의 시작이 (1,1)이라 자칫하면 배열의 범위를 벗어난다. 그래서 각각의 (r,c) 값을 -1씩 빼준 좌표에 음식물 쓰레기 위치 표시를 해준다. 그 뒤에 bfs를 돌리면 된다. bfs는 방문하지 않았으면서 음식물 쓰레기가 있는 위치를 잡고 돌면 된다. 결과값을 담을 res 변수를 하나 선언해주고, bfs를 돌 때 마다 더 많은 음식물 쓰레기를 탐색한 값으로 갱신해준다. - 코드 import sys from collections import deque input = sys.stdin.readli..
- 문제 링크 https://www.acmicpc.net/problem/10026 - 풀이 설명을 보면, 적록색약인 경우에는 빨강-초록을 하나로 본다. 그래서 적록색약이 아닌 경우를 첫번째로 탐색하며 현재 좌표의 색상과 상하좌우 좌표에 있는 색상이 같으면 bfs로 넣어준다. 최초 bfs 탐색이 끝나면 전체 graph를 돌면서 색이 G인 것을 R로 변경해주면 된다. 그 뒤에 visited 배열을 새로 만들고 두번째로 적록색약인 경우를 탐색하면 된다. - 코드 import sys from collections import deque input = sys.stdin.readline dx = [0,0,-1,1] dy = [-1,1,0,0] one, two = 0, 0 def bfs(x, y): visited[x..
- 문제 링크 https://www.acmicpc.net/problem/2108 - 풀이 실버 3 난이도의 수학, 구현, 정렬 태그가 달려있는 문제였다. 정답률이 25% 밖에 안되서 이 문제가 어렵나 ? 하고 풀어보았다. 파이썬 기준으로 얘기해보면 아마 저 3번의 최빈값을 구하는 거 때문에 사람들이 많이 틀리지 않았나 싶은 생각이 든다. 파이썬에서 제공하는 Counter라는 기능을 사용하면 쉽게 해결할 수 있는 문제지만, 자주 사용하지 않으면 Counter의 존재 자체를 계속 까먹으니 자주 써버릇 하는 것이 중요하겠다. - 코드 from collections import Counter N = int(input()) arr = [] for _ in range(N): arr.append(int(input()..
- 문제 링크 https://www.acmicpc.net/problem/2589 - 풀이 bfs로 풀었다. 문제를 보면 알겠지만 범위 내에서 모든 육지를 다 체크해야 하는 완전 탐색 문제이다. 코드를 보면 알겠지만 그냥 bfs에서 사알짝 응용 버전이다. 별로 어렵지 않았다. 근데 정답률이 37% 밖에 되지 않아서 조금 이상하긴 했다. - 코드 import sys from collections import deque input = sys.stdin.readline dx = [0,0,-1,1] dy = [-1,1,0,0] def bfs(x, y): visited = [[0] * M for _ in range(N)] queue = deque() queue.append((x, y, 0)) visited[x][y..
- 문제 링크 https://www.acmicpc.net/problem/11724 - 풀이 dfs로 풀었다. 방향이 없는 그래프라고 해서 단방향 그래프로 구현했다가 한 번 틀리고 아 ! 내가 바보같은 생각을 했구나를 깨닫고 양방향 그래프로 다시 바꿔서 구현했다. 노드 번호를 1번씩 차례대로 for문을 돌면서 연결된 요소가 몇개 있나를 찾으면 된다. 어렵지 않은 실버 2 문제였다. - 코드 import sys input = sys.stdin.readline sys.setrecursionlimit(10**8) def dfs(start): visited[start] = 1 for edge in graph[start]: if visited[edge] == 0: dfs(edge) N, M = map(int, in..
- 문제 링크 https://www.acmicpc.net/problem/1012 - 풀이 그래프를 가로 x 세로 만큼 먼저 선언해놓고, K만큼 배추의 위치를 입력받을 때 graph 배열에 배추의 위치를 1로 표시한다. 그리고 배추가 있는 곳에서 bfs를 돌려주면 된다. 밑에 코드를 보면 알겠지만 배추의 위치를 입력받을 때 a, b 위치만 바꿔주는 것만 고려하면 특별히 예외처리 해줄만한 것도 없어서 푸는데 한.. 7분 걸렸던 것 같다. bfs를 한 번 실행할 때 마다 배추흰지렁이가 1마리씩 필요하다고 생각하면 편하다. - 코드 import sys from collections import deque input = sys.stdin.readline dx = [0,0,-1,1] dy = [-1,1,0,0] d..
- 문제 링크 https://www.acmicpc.net/problem/21610 - 풀이 백문 문제집에 있는 SW 역량 테스트 기출문제 중 하나이고, 악명(?) 높은 상어 문제 중 비교적 쉬운 편에 속하는 구현 + 시뮬레이션 문제였다. divide and conquer 방법으로 구현했다. 문제 하나를 더 작은 단위의 문제로 쪼개서 구현하는.. 그런 방법이다. 구름을 이동시키는 함수, 물복사버그 함수, 다시 구름을 만드는 함수 총 3개의 함수를 만들어서 사용했다. 함수 하나씩 차근차근히 살펴보자. 1. 구름 이동 함수 def move(x, y): queue = [] while cloud: a, b = cloud.popleft() for i in range(y): a = a + dx[x] b = b + d..
- 문제 링크 https://www.acmicpc.net/problem/14938 - 풀이 보통 기본적인 다익스트라 문제는 간선의 비용을 출력하거나 했는데 이 문제는 간선의 비용이 아니라 정점(노드)의 최댓값을 구하는 문제였다. 지문에 보면 양방향 통행이 가능하다고 하니 양방향 그래프로 구현해주면 된다. 1. 거리 배열인 distance 배열을 return 하는 다익스트라를 구현한다. 경로 탐색 중 간선의 비용이 M보다 크다면 생략한다. 2. 1번 노드부터 N번 노드까지 반복을 하며 distance 배열에 INF 값이 아닌 값들의 위치에 있는 아이템의 합을 배열에 넣어준다. 3. 배열 중에서 제일 큰 값을 출력한다. - 코드 import sys import heapq input = sys.stdin.re..
- 문제 링크 https://www.acmicpc.net/problem/13424 13424번: 비밀 모임 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 방 www.acmicpc.net - 풀이 거의 기본 다익스트라 문제였다. 마지막 부분에 조금 헤맸지만 그래도 맞혔다. 1. 지문에서도 양방향 통행이 가능하다고 했기 때문에 그래프를 양방향 그래프로 만들어 준다. 2. 다익스트라 함수에서 별 다른 특이사항은 없다. 그냥 다익스트라 함수 원형을 구현해주면 된다. 거리 배열인 distance 배열을 return 해주면 된다. 3. 이제 for문을 도는데, list 형태로..
- Total
- Today
- Yesterday
- 14938
- boj 10026 python
- 폰트 최적화
- 레벨 2
- 백준
- Python
- WOFF2
- 알고리즘
- BFS
- BOJ
- 실버3
- 데이크스트라
- 6986
- 구현
- 도넛 행성
- boj 2589
- 리액트 츨겨찾기
- 목데이터
- 최근검색 기능
- 리액트
- 21610
- 파이썬
- 보정평균
- 리코쳇 로봇
- 1270
- 마법사 상어
- 리액트 최근검색
- 서강그라운드
- 백준 10026
- opgg #클론코딩 #할수있다
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |