코딩테스트/백준
[백준]2628번 종이 자르기 - Java
문제 https://www.acmicpc.net/problem/2628 2628번: 종이자르기 첫줄에는 종이의 가로와 세로의 길이가 차례로 자연수로 주어진다. 가로와 세로의 길이는 최대 100㎝이다. 둘째 줄에는 칼로 잘라야하는 점선의 개수가 주어진다. 셋째 줄부터 마지막 줄까지 한 www.acmicpc.net 풀이 잘랐을 때 가장 큰 가로와 가장 큰 세로를 찾으면 끝나는 문제라고 생각함 자르는 위치를 저장하고 그 위치를 잘랐을 때 잘린 길이를 따로 저장해줬음. 그러기 위해선 (0 ~ 처음 자른 위치), ..., (마지막 자른 위치 ~ 가로/세로의 끝) 부분도 필요했기 때문에 arrayList0.add(0); arrayList1.add(0); arrayList0.add(y); arrayList1.add(..
[백준]2304번 창고 다각형 - Java
문제 https://www.acmicpc.net/problem/2304 2304번: 창고 다각형 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 www.acmicpc.net 풀이 2차원 배열에 넣어서 정렬을 하려고 했지만 2차원 배열 정렬 방법을 잘 몰라서 gidoong이라는 클래스를 만들고 Comparable 인터페이스를 이용해서 정렬했음 1. gidoongs[] 에 gidoong 클래스를 차례대로 넣는다. 2. Comparable 인터페이스를 활용하여 compareTo() 메서드를 재정의하여 gidoongs의 x를 기준 오름차순으로 정렬한다...
[백준]10158번 개미 - Java
문제 https://www.acmicpc.net/problem/10158 10158번: 개미 가로 길이가 w이고 세로 길이가 h인 2차원 격자 공간이 있다. 이 격자는 아래 그림처럼 왼쪽 아래가 (0,0)이고 오른쪽 위가 (w,h)이다. 이 공간 안의 좌표 (p,q)에 개미 한 마리가 놓여있다. 개미는 오 www.acmicpc.net 풀이 처음에는 아무 생각 없이 걍 시뮬로 하면 될 것 같았음. 그래서 했는데? 조졌다리 밑에 오답 코드처럼 노가다로 하다가 하면서도 뭔가 이상한 것 같았음 ㅋㅋㅋㅋ 근데 이미 한거 일단 제출해보자 하고 했는데 역시나 메모리 초과(사실 메모리 초과는 문제 풀면서 첨 보는거 같음) 그리고 문제 다시 봤는데 문제에서 w와 h는 자연수이며 범위는 2 ≤ w,h ≤ 40,000이다...
[백준]10157번 자리배정 - Java
문제 https://www.acmicpc.net/problem/10157 10157번: 자리배정 첫 줄에는 공연장의 격자 크기를 나타내는 정수 C와 R이 하나의 공백을 사이에 두고 차례대로 주어진다. 두 값의 범위는 5 ≤ C, R ≤ 1,000이다. 그 다음 줄에는 어떤 관객의 대기번호 K가 주어진다. www.acmicpc.net 풀이 1. 처음 방향(상)에서 범위를 벗어나면 방향이 바뀜(우) -> 암튼 상우하좌 로 방향이 바뀜 -> static으로 방향 벡터 설정 2. 문제에서 말이 되지 않는 케이스는 0을 출력하라고 함 -> 0을 출력 후 System.exit(0)으로 시스템 정상 종료 3. 범위를 벗어나거나 map[][] 안에서 0을 만나면 방향을 바꾸고 한칸 전진 시키고 다시 while문 4. ..
[백준]3109번 빵집 - Java
문제 https://www.acmicpc.net/problem/3109 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net 풀이 1. 파이프 설치 진행 방향(필요한 것만, 순서대로 -> 오른쪽 위 대각선, 오른쪽, 오른쪽 아래 대각선) 2. boolena 타입의 check[][] 배열로 다음 진행 방향에 파이프를 설치할 수 있는지 확인 3. 설치가 가능하면 설치하고 check배열을 true로 바꿔준 후 solution함수 재귀 호출 4. 마지막 열에 도착할 때마다 answer++ 코드 // 3109번 - 빵집 // https:/..
[백준]1158번 요세푸스 문제 - Java
문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 1. 큐에 순서대로 삽입 2. flag라는 변수를 사용해 3일때마다 번호를 제거 3. 제거 후에 flag를 0으로 초기화 4. 큐의 사이즈가 0이 될 때까지 반복 코드 // 1158번 요세푸스 문제 // https://www.acmicpc.net/problem/1158 package BAEKJOON; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Sc..