본문 바로가기
728x90
반응형

백준99

[백준/java] 2468번 : 안전 영역 - BFS https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 어렵지도, 그렇다고 그렇게 쉬운문제는 아니었다. 생각보다 놓치기 쉬운 함정들이 있었다. 입력의 마지막 설명 중, " 높이는 1이상 100 이하의 정수이다. " 라는 설명이 있는데, 문제 페이지 맨 마지막 "노트"란을 보면 라고 나와있다. 이것을 고려하지 않는 경우가 더러 있었다고 한다. bfs로 순환하여 탐색하되, 순환의 높이의 시작은 0부터 100까지여야 한다는 것이다. package bfs; impo.. 2021. 8. 14.
[백준/java] 4963번 : 섬의 개수 - BFS https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 드디어.. 처음으로 BFS 개념을 어느 곳에서도 참고하지 않고 혼자 힘으로 푼 문제이다 문제 자체는 어려운 문제는 아니었다. ※ 문제 풀이 접근 방법 (1) 이차원 배열 map으로 배열의 크기 다음으로 입력되는 값들을 입력받는다 (2) map 이차원 배열의 크기와 똑같은 사이즈의 boolean형 이차원 배열을 만들어준다. (3) 이중으로 for문을 돌면서, map[i][j]가 1이 아니거나 .. 2021. 8. 13.
[백준/java] 14891번: 톱니바퀴 - 삼성 코딩테스트 기출문제 https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 프로세스 순서 착오에 의해 문제를 푸는데만 3일이 넘게 걸렸다.. 대충 이해했던 프로세스는 아래와 같다. ---> 1. 지정받은 번호의 톱니바퀴를 방향에 맞게 일단 회전시킨다. ---> 2. 회전시킨 후, 왼쪽과 오른쪽 톱니바퀴의 극을 비교한다 ---> 3. 극이 다르면 비교 대상의 톱니바퀴를 반대방향으로 회전시킨다. ---> 4. 2 ~ 3번을 반복한다 로 이해했었는데 아주 잘못된 이해였다.. 2021. 8. 13.
[백준/java] 1932번: 정수 삼각형 - DP https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net ※ 문제 풀이 도출 과정 위에서부터 내려오면서 셀에 있는 값을 이전 행의 값을 더한다. 이전행의 값을 더할 때 방향은 ↓↘. 근데 그 중에 더 큰값을 선택해야 한다. 제일 첫번째 열은 그냥 수직으로 누적 합을 구해주면 된다. 두번째 열부터 현재 행이 i번째 행, 현재 열이 j번째 열이라고 한다면, i-1행의 j-1과 i-1행의 j번째의 값과 비교하여 더 큰 수를 누적하여 더해주면 된다. 여기서 중요한 것은 삼각형의 크기가 1부터 500까지이기 때문에 n= 1 일때에도 .. 2021. 8. 12.
[백준/java] 21922번: 학부 연구생 민상 - BFS https://www.acmicpc.net/problem/21922 21922번: 학부 연구생 민상 첫 번째 줄에는 연구실의 크기가 세로 $N(1 \le N \le 2,000)$, 가로 $M(1 \le M \le 2,000)$ 순으로 주어진다. 두 번째 줄부터 $N + 1$ 줄까지 연구실 내부 구조 정보를 알려주는 값 $M$개가 주어진다. $1,2,3,4$ www.acmicpc.net ※ 문제 풀 때 주의 사항 (1) boolean 타입 3차원 배열(boolean[][][] visit)을 이용해서 풀어야 한다. -> boolean 3차원 배열로 풀지 않고 int 타입 2차원 배열을 새로 만들어서 지나가는 곳마다 값을 누적해서 0이 아닌 곳을 카운트 했더니 시간초과가 발생했다. (2) 방문했던 위치는 또 .. 2021. 8. 10.
[백준/java] 20055번: 컨베이어 벨트 위의 로봇 - 시뮬레이션(삼성 기출) https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 삼성 기출 문제를 풀어보았다. 우선탐색, 동적 계획법 문제들 보다는 상대적으로 쉬운 시뮬레이션 문제였다. 하지만 점점 문제의 티어가 올라가면 올라갈 수록 아 괜히 이 티어와 레벨이 아니구나 라는걸 느끼게 된다. 문제를 이해하기가 상당히 난해했다. 정리하자면, 1. 먼저 컨베이어벨트를 가동한다. 2. 로봇을 처음 위치 belt[0]에 탑승시킨다. 3. 컨베이어벨트가 이동한다. .. 2021. 8. 5.
728x90
반응형