백준
[백준]14891번 톱니바퀴 - Java
문제 https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 풀이 아 처음에 톱니바퀴의 위치에 따라서 옆 톱니바퀴가 회전하는지 안하는지를 생각을 안해줘서 너무 노가다로 풀었다,,,, 진짜 너무 빡침 ㅠ 이래서 설계가 중요하구나 느꼈음./... 중간에 코드 짜다가 아 이렇게 풀면 안되는구나 하고 알았는데 톱니바퀴 4개라서 노가다도 될 것 같고, 이미 돌아가기엔 너무 늦었으니까 이렇게 풀고 다음에 톱니바퀴2 문제나 이 문제 한번 더 풀어야 겠다 라고 ..
[백준]7569번 토마토 - Java
문제 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 풀이 https://seokmimmmmmmmm.tistory.com/98 [백준]7576번 토마토 - Java 문제 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000.. ..
[백준]2606번 바이러스 - Java
문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 풀이 뭐 여러가지 방법을 풀 수 있겠지만 인접 행렬로 풀면 쓸데없는 메모리 활용이 좀 있을 것 같다. 그래서 ArrayList를 활용한 인접 리스트로 풀었음. 방문 체크 배열을 이용해서 이미 방문한 곳은 체크를 하고 인접한 애들 중 방문하지 않은 애들인 경우에만 answer++하고 dfs를 한번 더 탔음! 밑에 코드 참고! 코드 // 2606번 바이러스 // https://www.acmicpc.n..
[백준]3190번 뱀 - Java
문제 https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 풀이 시뮬레이션 문제이다. 뱀을 큐로 생각했고, 다음 칸의 좌표를 뱀 큐에 넣어주고 그 칸이 사과면 큐의 길이를 줄이지 않고(poll()하지 않고) 사과가 아니면 큐의 길이를 줄였음(poll()했음). 그리고 방향 전환은 4방향을 시계방향으로 해줬음(시계 반대 방향이여도 상관 없음). 4방 탐색이므로 +를 해서 4가 넘어가면 %4 연산을 통해서 방향이 돌고 돌 수 있게 해줌 이것들만 생각하면 잘 풀..
[백준]14719번 빗물 - Java
문제 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 풀이 어떻게 풀지 생각하는데 약간 시간이 걸렸다 제일 왼쪽이랑 오른쪽 블록을 제외한 그 사이에 있는 블록들 머리 위에만 빗물이 쌓일 수 있기 때문에, 그 점을 생각하면 쉽게 풀림! 자세한 설명은 주석을 달아놨으니 참고하셈! 코드 // 14719번 빗물 // https://www.acmicpc.net/problem/14719 package BAEKJOON; import jav..
[백준]9250번 맥주 마시면서 걸어가기 - Java
문제 https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 풀이 플로이드 와샬 문제이다! 최근에 배웠음. 처음 설명을 들을 때는 되게 쉽네~ 라고 생각했지만 막상 문제를 풀어보니까 잘 모르겠더라 ㅎㅎㅎ 다익스트라가 한 정점에서 모든 정점으로의 최소 비용 거리를 구하는 알고리즘이라면, 플로이드 와샬은 모든 정점에서 모든 정점으로의 최소 비용 거리를 알 수 있음!! 다만 3중 for문을 돌기 때문에 크기가 크면 터질 수도 있으니까 조심하자!!! 경..
[백준]2960번 에라토스테네스의 체 - Java
문제 https://www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net 풀이 수학에서 에라토스테네스의 체는 소수를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다. 이 사진처럼 체에 거르듯이 거르는 것이다! 코드 // 2960번 에라토스테네스의 체 // https://www.acmicpc.net/problem/2960 package BAEKJOON; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java...
[백준]3020번 개똥벌레 - Java
문제 https://www.acmicpc.net/problem/3020 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net 풀이 처음에 문제를 읽었을 때 정말 쉬운 문제라고 생각했음 근데 또 문제 안읽어서 주어지는 수들의 범위를 체크를 못함 또 또또 ㅠㅠㅠㅠ 1번 방법(오답) 그냥 높이별 부딪히는 횟수를 계산할 배열을 만들고 2중 for문을 돌면서 해당 배열에 저장해줌! 이렇게 풀면 당연히 시간초과,,,, 2번 방법(정답) 이분 탐색! 오답 코드 // 3020번 개똥벌레 // https://www.acmicpc.ne..