전체 글

PS/백준

[백준] 20061번 모노미노도미노2 (Java)

https://www.acmicpc.net/problem/20061저처럼 푸시면 안됩니다.. 정답 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;class Main { static int N; static int t, x, y; static int score = 0; static boolean[][] board = new boolean[10][10]; public static void main(String args[]) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.i..

PS/백준

[백준] 19237번 어른 상어 (Java)

https://www.acmicpc.net/problem/19237  정답 코드import java.awt.Point;import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayDeque;import java.util.HashMap;import java.util.Map.Entry;import java.util.PriorityQueue;import java.util.StringTokenizer;public class Main { static int N, M, K; static int[][][] board; static int[][][] direction; static int[][] sharks; static boo..

PS/백준

[백준] 17472번 다리 만들기 2 (Java)

https://www.acmicpc.net/problem/17472 다리 만들기 1은 어렵지 않게 풀었는데 다리 만들기 2는 MST 지식이 필요해서 좀 더 공부한 후 풀었다. 크루스칼 알고리즘이나 프림 알고리즘을 사용하면 풀 수 있다. 또한 섬의 개수가 최대 6개로 매우 작기 때문에 시간 초과 걱정 없이 알고리즘 공부할 수 있는 문제였다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayDeque;import java.util.ArrayList;import java.util.List;import java.util.Queue;import java.util.StringTokenizer;public clas..

PS/백준

[백준] 17837번 새로운 게임 2 (python)

https://www.acmicpc.net/problem/17837  import sysinput = sys.stdin.readlinedi = [0, 1, 0, -1]dj = [1, 0, -1, 0]def setting(d): if d == 1: # 우 return 0 elif d == 2: # 좌 return 2 elif d == 3: # 상 return 3 else: return 1 def move(): global n for number in range(1, k+1): num, si, sj, d = mal[number] # 1. 해당 위치에 있는 말들 중, 본..

PS/백준

[백준] 2146번 다리 만들기 (python)

https://www.acmicpc.net/problem/2146 초기 구현에는1. 육지인 영역 찾기2. 바다와 인접한 영역만 골라내기3. bfs 탐색 위 메서드를 모두 구현했는데 2번 메서드가 없어도 정답일 것 같아 삭제했더니 역시 정답이었다. 근데 지금 생각해 보면 1번이랑 2번을 합쳐서 구현했으면 훨씬 메모리 측면에서 효율적일 것 같다는 생각이 든다.ㅎ 정답 코드import sysfrom collections import dequeinput = sys.stdin.readlinen = int(input())board = [list(map(int, input().split())) for _ in range(n)]number = [[0 for _ in range(n)] for _ in range(n)]..

PS/백준

[백준] 7576번 토마토 (python)

https://www.acmicpc.net/problem/7576 이제 토마토는 마스터했다고 생각했는데 아니었다 ㅎ모든 위치에 토마토가 있는 경우를 고려 안 해서 틀렸지만 그 부분만 고치니 바로 풀렸다.놓치는 예외상황이 너무 많아서 걱정이다.. import sysfrom collections import dequeinput = sys.stdin.readlinem, n = map(int, input().split())board = [list(map(int, input().split())) for _ in range(n)]tomatos = deque()for i in range(n): for j in range(m): if board[i][j] == 1: tomatos...

PS/백준

[백준] 1600번 말이 되고픈 원숭이 (python)

https://www.acmicpc.net/problem/1600 처음에 말처럼 이동하는 경우와 아닌 경우를 동시에 queue에 넣어서 돌렸고 문제 예제도 맞았다. 근데 제출하니까 틀려서 뭐가 문제지 하고 생각해 보니 말처럼 이동하면 안 되는 경우에 말처럼 이동한 후 visited를 True로 바꿔버려서 다른 경우를 고려하지 못하는 문제가 발생했다. 이 예외 상황을 처리하기 위해 2차원으로 관리하던 배열을 3차원으로 바꿨고, 그중 마지막 차원은 말처럼 이동한 횟수로 두었다. 문제가 조금 익숙하다고 느껴졌는데 2024 하반기 삼성 계열사 오후 2번 문제랑 결이 비슷하다.. 그 문제도 3차원으로 이동을 관리해야 해서 비슷하게 느껴졌다.  정답코드import sysfrom collections import d..

PS/백준

[백준] 2667번 단지번호붙이기 (python/정답코드)

https://www.acmicpc.net/problem/2667  import sysfrom collections import dequeinput = sys.stdin.readlinen = int(input())board = [list(map(int, input().strip())) for _ in range(n)]is_home = []for i in range(n): for j in range(n): if board[i][j] == 1: is_home.append((i, j)) di = [0, 1, 0, -1]dj = [1, 0, -1, 0]def bfs(si, sj): global visited count = 1 dq = de..

yo0oni
기록 기록 기록