본문 바로가기

Algorithm judge

(14)
[백준 17478번] 재귀함수란 무엇인가요? - 자바(JAVA) www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net
[백준 10026번] 적록색약 - 자바(JAVA) 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 소요 시간: 39분 36초 R G B를 숫자로 바꾸어 배열에 입력했습니다. 생성된 배열을 같은 타입에 배열에 copy하였으며, Queue 또한 일반인과 적록색약인을 나누었습니다. 적록색약인의 경우 초록과 빨강의 차이를 느끼지 못한다는 전제조건이 있어, GREEN의 값을 1, RED는 0을 주어 적록색약의 BFS를 수행할 때, board[x][y]
[백준 7562번] 나이트의 이동 - 자바(JAVA) www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 소요 시간: 48분 46초 가장 많이 시간을 할해한 것은 문제를 제대로 파악하지 않았다는 것이었습니다..ㅎㅎ 이동과 원하는 위치 도달 문제이다보니, 당연히 BFS이며 상하좌우로 움직이겠거니 하는 안일함에 오래걸렸습니다. 체스에서 나이트의 이동 범위는 상하좌우가 아니라는 사실을 간과한채 문제를 풀어 이런 문제가 발생했네요. 중요한 것은 초기 위치를 표기한 Queue는 테스트 케이스마다 새로 인스턴스가 생성되어야 한..
[백준 2667번] 단지 번호 붙이기 - 자바 (JAVA) www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 소요 시간: 15분 00초
[백준 2583번] 영역 구하기 - 자바(JAVA) 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 문제 풀면서 Queue에 추가하는 값을 x, y좌표가 아닌 그냥 반복문의 값을 넣어 비정상적으로 카운트되는 일이 발생했다. 그리고 주어진 꼭지점의 좌표로 배열을 만들었는데, 배열의 모양이 뒤집혀도 구성만 맞으면 된다고 생각했으나 앞서 언급된 Queue에 잘못된 값을 넣어 결과가 잘못 나오는 일이 초래돼 1시간을 소요했다..ㅠㅠ 공부하면서 발생한 실수이니 더 이상 이런 일이 없길 빌며.. 좌표값 실수만 없으면 다른 2차원 BFS 문제처럼 쉽게 ..
[백준 1012번] 유기농 배추 - 자바(JAVA) www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 문제 접근 배추가 심어진 공간의 갯수를 구해야 하기에 넓이 우선 탐색 기법인 BFS를 이용하기로 하였습니다. 두 가지 풀이법을 생각했는데요. 좌표 입력과 동시에 하나의 범위에 속하는지 아닌지 체크 2차원 배열에 배추가 심어진 범위를 표시한 뒤, 필요한 벌레 카운트 하지만 1번 접근법에는 오류가 존재했습니다. 좌표가 입력됨과 동시에 상하좌우로 1이 있는지 없는지 체크한 뒤, 인접한 1이 없다면 갯수를 카운트했습니다. 이 방법..
[백준 10799번] 쇠막대기 자바(JAVA) 레이저로 자를 경우 파이프 갯수만큼 분해됨 만약 파이프 길이가 종료될 경우, 이전에 자른 갯수에 1만큼 갯수가 추가됨 중요한 포인트는 해당 닫는 괄호가 파이프 길이의 끝인지, 레이저인지 판단해야 함 BufferedReader로 입력 속도를 줄임 if문으로 레이저인지 파이프의 끝인지 판단해 이에 맞는 연산 실행
[백준 1021번] 회전하는 큐 (자바) 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 가장 크게 시간을 잡아먹었던 부분은 처음에 덱(Deque)을 java.util.Deque로 구현하고자 했다. 하지만 indexOf 메서드를 제공하지 않아 구현에 어려움이 있었다.. ㅠㅠㅠ 결국 검색하다 찾은 것이 LinkedList이다. 추후 자바에서의 LinkedList와 차이를 다룰 예정이다. 아무튼 LinkedList는 indexOf 기능을 제겅해, 입력된 값의 index 번호를 반환해주어 해당 index번호와 덱(deque)의 중간 index 번호를 ..