분류 전체보기 썸네일형 리스트형 백준 1260번: DFS와 BFS (JAVA) 문제 해석 주어진 그래프를 DFS, BFS로 각각 탐색하여 결과를 출력한다. 알고리즘 DFS, BFS를 각각 구현한다. 방문기록을 남기는 배열을 각각 두거나 / 하나만 둘 시에는 DFS 수행 후 방문기록을 초기화하여 재사용한다. 코드 더보기 백준 13414번: 수강신청 (JAVA) <List와 Set> 문제 해석 과목 수강 가능 인원 K와 수강신청 버튼 누른 횟수 L, 수강신청 버튼을 누른 학생의 학번이 입력값으로 주어지고 한 번 누른 학생도 또 누를 수 있다. 대신 그 경우 수강신청 우선순위가 마지막에 누른 시점으로 밀려난다. 수강신청 성공한 학생들을 출력한다. 알고리즘 버튼을 누른 학생들을 조건을 검사하고 순서대로 List에 담는다. 조건은 List에 버튼을 누른 학생의 학번이 이미 존재하면 해당 학번을 삭제한다. 하지만 List를 사용할 시 ArrayList와 LinkedList 모두 시간 초과가 나온다. 검색해본 결과 Set을 사용해야 함을 알 수 있었다. 조건을 실행할 때 contains() 함수를 사용하는데 List는 O(N), Set은 O(1)의 시간 복잡도가 나오기 때문이다. 코드 더보기 백준 7765번: 먹을 것인가 먹힐 것인가 (JAVA) 문제 해석 A는 자기보다 크기가 작은 B를 먹는다. A와 B의 각각 개체별 크기가 입력값으로 주어진다. 알고리즘 A와 B 개체별 크기를 입력 받고 각각 정렬한다. A 개체를 하나씩 꺼내어 먹을 수 있는 B의 양을 구하려할 때 3가지의 경우가 발생한다. 1. A 개체의 크기 B 가장 큰 개체의 크기 : 모든 B를 먹을 수 있다. 3. B 개체를 내림차순으로 탐색해 처음으로 A 개체의 크기가 더 큰 경우를 찾을 시 : 해당 B 개체보다 큰 B 개체를 제외하고는 다 먹을 수 있다. 코드 더보기 백준 18310번: 안테나 (JAVA) 문제 해석 집의 위치들이 입력값으로 주어진다. 안테나를 한 집에 설치하는데 안테나가 설치한 집은 그 집으로부터 모든 집까지의 거리 총 합이 최소가 되어야 한다. 알고리즘 집의 위치를 오름차순으로 정렬한다. 집의 개수가 홀수개일 때는 (N / 2 + 1) 번째 , 짝수개일 때는 (N / 2) 번째 위치한 집이 안테나를 설치해야 할 집이다. 코드 더보기 백준 1758번: 알바생 강호 (JAVA) 문제 해석 A 손님에게 강호가 받는 팁 = A가 원래 주려던 팁 - (A가 커피를 받은 등수 - 1) 위의 식이 음수가 나오면 팁을 받을 수 없고 팁을 최대한 많이 받도록 순서를 변경한다. 알고리즘 원래 주려던 팁은 변하지 않고 등수만 변하기 때문에 원래 주려던 팁이 많은 사람에게 더 빨리 커피를 주면 된다. 코드 더보기 백준 2485번: 가로수 (JAVA) <최대공약수> 문제 해석 현재 심어져 있는 가로수의 위치 정보가 있다. 추가로 가로수를 심는데 기존 가로수 사이에만 심을 수 있다. 가로수를 추가로 심어 가로수의 위치들이 등차수열을 이루게 한다. 알고리즘 가로수 간의 거리를 각각 구하고 그것들의 최대 공약수가 최종 결과를 만들기 위한 가로수 간격이다. 코드 더보기 백준 10157번: 자리배정 (JAVA) <달팽이 문제> 문제 해석 공연장에 들어오는 순서대로 배치조건을 반복하며 좌석을 배치한다. 배치 조건 1. 위쪽 방향으로 올라가면서 위쪽의 끝이거나 위에 이미 배치된 좌석이 나올 때까지 좌석 배치 2. 오른쪽 방향으로 가면서 오른쪽의 끝이거나 오른쪽에 이미 배치된 좌석이 나올 때까지 좌석 배치 3. 아래쪽 방향으로 내려가면서 아래쪽의 끝이거나 아래쪽에 이미 배치된 좌석이 나올 때까지 좌석 배치 4. 왼쪽 방향으로 가면서 왼쪽의 끝이거나 왼쪽에 이미 배치된 좌석이 나올 때까지 좌석 배치 알고리즘 재귀호출을 이용하여 순번마다 좌석을 배치해준다. 배치조건은 현재 조건을 만족 못할시 다음 조건을 사용하면 무조건 만족하므로 위와 같은 조건문을 사용한다. 코드 더보기 백준 2346번: 풍선 터뜨리기 (JAVA) <DEQUE> 문제 해석 원형으로 1번부터 N번까지의 풍선이 놓여있다. 풍선 안에는 종이가 들어있고 종이에는 -N이상 N이하의 정수가 적혀있다. 풍선을 터뜨리고 종이에 적힌 값만큼 이동하는 과정을 반복한다. 알고리즘 원형 큐를 만들고 종이에 음수가 적힌 경우를 적절히 처리하면 될 것 같아 큐를 이용해 원형 구조를 구현하였는데 메모리 초과가 떴다. 이후 이것저것 바꿔보다 덱을 사용해야함을 알게 되었다. 큐는 입력부분과 출력부분이 각각 존재하기에 이용시 따로 본인이 작성을 안하여도 front와 rear에 대해 메모리를 추가로 사용하여 메모리 초과가 발생되는 것 같다. 덱을 이용하여 입력부분과 출력부분을 자유롭게 사용하고 메모리 사용률을 감소시켰다. 또한 종이에 적힌 수가 아닌 터진 풍선의 번호를 출력해야 한다. 따라서 메.. 더보기 이전 1 2 3 4 5 6 7 다음