본문 바로가기

728x90

공부의 기록/Baekjoon

(4)
[BOJ] 14502. 연구소 - java ⬛ [BOJ] 14502. 연구소 - java https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net ⬛ 문제 정리 0은 빈칸, 1은 벽, 2는 바이러스 바이러스(2)는 벽을 통과할 수 없고 빈칸(0)으로만 확산된다. 꼭 3개의 벽을 세워야 하고 벽을 세운 뒤, 바이러스가 퍼질 수 없는 곳을 안전 영역이라고 한다. 안전 영역 크기의 최댓값을 구하여라. ⬛ 풀이 방법 map을 채울 때 빈칸(0)의 개수를 센다. -> zeroCnt dfs를 이용하여 3개의 벽을 세우..
[BOJ] 2458. 키 순서 - java (SWEA_5643) ⬛ [BOJ] 2458. 키 순서 - java https://www.acmicpc.net/problem/2458 2458번: 키 순서 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 www.acmicpc.net ⬛ 풀이 방법 인접 행렬을 만들고 방향있는 간선 사용 나보다 작은 학생들에 대한 정보와 나보다 큰 학생들에 대한 정보의 합이 N-1개면 나의 키가 몇번째인지 알 수 있다. BFS를 이용하여 주어진 정보에서 더 알아낼 수 있는 정보를 추가 학생별로 count 배열을 만들어 나보다 작은 학생들에 대한 정보나 큰 학생들에 대한 정보를 알 때마다 +1 ⬛ 소스..
[Boj] 17070. 파이프 옮기기1 - java ⬛ 17070. 파이프 옮기기1 https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net ⬛ 풀이 방법 현재 파이프의 상태가 가로일 때 세로로 가려는 시도는 제외, 현재 파이프의 상태가 세로일 때 가로로 가려는 시도는 제외 대각선으로 가려고 할 때는 현재 파이프의 위치에서 오른쪽, 아래쪽으로 갈 수 있는지 먼저 파악 -> isPossible 변수가 true라는 뜻은 대각선으로 갈 수 있는 가능성이 있다는 뜻이다. isPossib..
[Boj] 2464. 비밀번호 - java ⬛ 2464. 비밀번호 https://www.acmicpc.net/problem/2464 2464번: 비밀번호 주어진 수 보다 작은 수 중에서 이진수의 1의 개수가 같으며 가장 가까운 수와, 주어진 수 보다 큰 수 중에서 이진수의 1의 개수가 같으며 가장 가까운 수를 한 줄에 빈칸을 사이에 두고 출력한다 www.acmicpc.net ⬛ 풀이 방법 1의 개수가 같으면서 가장 가까운 작은 수와 가장 가까운 큰 수를 찾기 입력받은 수를 이진수 리스트로 저장 (43 = 101011(2), list = [1, 1, 0, 1, 0, 1, 0]) 해당 수보다 더 작은 수를 찾기 위해서는 리스트를 인덱스 0부터 돌며 01이 되는 부분 찾아서 10로 swap ( [1, 1, 0, 1, 0, 1, 0] -> [1, 1, ..

728x90