본문 바로가기

Problem Solving/BOJ30

백준 - 10163 색종이 www.acmicpc.net/problem/10163 10163번: 색종이 평면에 색깔이 서로 다른 직사각형 모양의 색종이 N장이 하나씩 차례로 놓여진다. 이때 색종이가 비스듬하게 놓이는 경우는 없다. 즉, 모든 색종이의 변은 서로 평행하거나, 서로 수직이거나 둘 www.acmicpc.net 2차원 배열의 값을 cnt배열의 인덱스로 활용하여 풀었다. import java.util.Arrays; import java.util.Scanner; public class BJ색종이 { static int [][]arr; static int []cnt; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.ne.. 2021. 2. 22.
백준- 2606번 바이러스 www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net BFS를 사용하여 풀이 인접한 컴퓨터를 큐에 삽입. 또 그 인접한 컴퓨터를 큐에 삽입하여 삽입이 일어날 때마다 count 1씩 증가 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; //bfs publi.. 2021. 2. 21.
백준 -1931 회의실 배정 www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 정렬 기준을 잡는다면 쉽게 해결할 수 있음. 회의의 시간시간과 끝나는 시간이 주어져 있음. -> 각 회의가 겹치지 않게 회의실을 사용하는 회의의 최대개수 찾기 (회의의 시작시간과 끝나는 시간이 같을수 있다) 회의의 종료시간을 오름차순으로 정렬 후 다음 회의의 시작시간이 앞선 회의의 종료시간보다 크거나 같다면 list에 추가해주었다. **주의** 만약 종료시간이 같은 회의가 존재한다면 시작시간이 앞선 회의를 먼저 list에 담아야 함 (시작시간 오름차순) 그리고 마지막에 list의 사이즈를 출력함으로써 배정된 회의의 수를 구하였.. 2021. 2. 21.
백준- 4963 섬의 개수 www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net DFS, BFS 모두 사용하여 풀 수 있음 방문한 섬 체크를 해주고 방문하지 않은 섬을 만날 때마다 cnt를 1씩 증가시켜주었다. 방문체크방식은 dfs, bfs 동일 풀이 1. DFS import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOExcepti.. 2021. 2. 21.
백준- 1987 알파벳 www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 같은 알파벳을 두번 지날수 없다 -> DFS로 탐색. String값을 들고다니며 contains메소드로 지나온 문자열을 체크해주려고 했음 결과: 메모리 초과 지금 생각해보면 String값은 매번 새로 복사해서 새로운주소에 저장해주어야하므로 메모리를 많이 쓸것 같았는데 역시나 통과가 안됐다. 방문배열, 방문알파벳 배열을 사용하여 DFS탐색함. import java.util.Arrays; import jav.. 2021. 2. 19.
백준- 15686 치킨 배달 www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 치킨집들중 M개를 골라 치킨 거리의 최솟값을 구하는 문제-> 조합 풀이1. 조합 ** 주의 ** 치킨집, 집의 수가 일정하게 주어지는게 아님-> ArrayList 이용!!! 배열로 풀다가 몇시간 날렸다.ㅋ 단, 리스트로 삽입할 시 **백트레킹** 필요하다. ////BJ 치킨배달 ///* // * 집,치킨집이 갖고있어야할것: 좌표 r,c // * 도시의치킨거리=모든치킨거리 합 // * 집의치.. 2021. 2. 18.