본문 바로가기

programming47

[프로그래머스, 자바] 여행경로 1. 문제 핵심 항공표는 왕복이 아닌 편도행 티켓 시작 공항과 도착 공항이 같은 티켓이 여러 장 존재할 수 있다. 2. 문제 접근 Arrays.sort와 hashmap을 활용하여 순서를 정렬한 뒤, 해당 순서로 출발 공항, 도착 공항을 정리한 표를 생성한다. 해당 표에서 ICN 공항을 시작으로 모든 항공표를 사용하는 경우의 수를 구하면 된다. 자바코드 더보기 package _0629_ChungLee; import java.io.*; import java.util.*; public class PG_여행경로 { static class Reader { int bfs = 1 2022. 6. 30.
[프로그래머스, 자바] 징검다리 1. 문제 핵심 이진탐색의 대상은 바위 사이의 최소 중 최대 거리값 0과 최대 거리 위치에도 돌이 놓여져있고 이 돌은 제거 불가 제거해야 할 돌의 개수 n이 주어졌을 때 n보다 적은 수의 돌을 제거해도 조건을 만족하면 정답 2. 문제 접근 이분탐색 문제를 몇 문제 풀어보면서 감을 잡지 않았나 생각했는데 최소최대값을 정하는 것부터 그것을 각 바위들 사이를 돌면서 검사하고 몇 개의 돌을 제거하면 되는지를 시작부터 감을 잡지 못했다. 자바코드 더보기 package _0629_ChungLee; import java.util.*; import java.io.*; public class PG_징검다리 { static class Reader { int bfs = 1 2022. 6. 30.
[백준, 3954, 자바] Brainf**k 인터프리터 문제 링크 : https://www.acmicpc.net/problem/3954 3954번: Brainf**k 인터프리터 각 테스트 케이스에 대해서, 프로그램이 종료된다면 "Terminates"를, 무한 루프에 빠지게 된다면 "Loops"를 출력한다. 무한 루프에 빠졌을 때는, 프로그램의 어느 부분이 무한 루프인지를 출력한다. ([ www.acmicpc.net 1. 문제 핵심 명령어는 최대 5천만번 이상 수행된 뒤, 항상 종료되거나 무한 루프에 빠진다. 여러 종류의 연산을 수행하고 연상이 종료되는지, 무한 루프에 빠지는지 검사한다. 2. 문제 접근 명령어를 수행하고 5천만번 이전에 끝나면 terminates를 출력 명령어가 5천만번이 수행되었다면 1. 모든 명령어가 수행되었다면 terminates를 출력.. 2022. 6. 22.
[백준, 1799, 자바] 비숍 문제 : https://www.acmicpc.net/problem/1799 1799번: 비숍 첫째 줄에 체스판의 크기가 주어진다. 체스판의 크기는 10이하의 자연수이다. 둘째 줄부터 아래의 예와 같이 체스판의 각 칸에 비숍을 놓을 수 있는지 없는지에 대한 정보가 체스판 한 줄 단위로 www.acmicpc.net 1. 문제 핵심 1. 비숍은 대각선으로만 움직일 수 있다. 2. 체스판 가로, 세로는 열 개 이하의 칸을 가진다. 3. ↓ 핵심 더보기 흰 색 칸에 속하는 비숍은 검은 색 칸의 비숍에게 간섭을 못하고, 검은 색 칸의 비숍은 흰 색 칸의 비숍에게 간섭하지 못한다. (중요) 2. 문제 접근 1. 백트래킹으로 비숍을 놓을 수 있는 각 칸마다 해당 칸의 좌상 대각선, 우상 대각선에 다른 비숍이 있는지 확.. 2022. 6. 21.
백준 1644 소수의 연속합 [자바] 문제 링크 : https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 문제 접근 : 1. 목적수 이하까지의 모든 소수를 구한 다음 슬라이딩 윈도우를 사용해서 크기를 조정해가며 해당하는 값들을 구한다. 2. 1은 소수가 아니다. 팁 : 작은 소수를 구했다면 그 소수를 목적수까지 2,3,4,~ N배를 해주며 예외처리를 해준다. 그러면 자연스레 남은 모든 수들은 소수가 되기 때문에 소수 검출에 시간을 대폭 줄일 수 있다. (i.e. : 에라토스테네스의 체) 더보기 코드 보기 package _0606.ChungLee; import java.io.DataInputStream; i.. 2022. 6. 6.
백준 17472 다리 만들기 2 [자바] 문제 링크 : https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 문제 해석 : 1. 연결에 제한이 존재하는 그래프 탐색 문제를 2차원 배열로 표현한 문제 2. 출력 값이 모든 섬을 연결하는 다리 길이의 최솟값이기 때문에 MST로 해결하고자 했음 주의점 : 1. 한 섬에서 출발해서 같은 섬으로 도착할 때는 다른 섬으로 도착한 것이 아님 2. 다른 섬으로 도착했을 때 거리가 2보다 작을 때는 성립하지 않음 3. 모든 섬에 방문할.. 2022. 6. 6.
BOJ 16946 G2 벽부수고 이동하기 4 [JAVA] 문제 링크 : https://www.acmicpc.net/problem/16946 16946번: 벽 부수고 이동하기 4 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 한 칸에서 다른 칸으로 이동하려면, 두 칸이 인접해야 한다. 두 칸이 www.acmicpc.net 문제 ------------------------ N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 한 칸에서 다른 칸으로 이동하려면, 두 칸이 인접해야 한다. 두 칸이 변을 공유할 때, 인접하다고 한다. 각각의 벽에 대해서 다음을 구해보려고 한다. 벽을 부수고 이동할 수 있는 곳으.. 2022. 5. 30.