본문 바로가기

CODING119

[BAEKJOON] 직사각형 쿼리 2차원 배열에서 자연수 1부터 10까지 카운트 할 수 있도록 3차원 배열로 확장하여 누적합 풀이를 적용한다. arr[x][y][k]는 x행, y열까지 자연수 k가 몇 개까지 카운트되었는지를 담고 있다. x1, y1부터 x2, y2까지 자연수 k의 누적 개수는 arr[x2][y2][k] - arr[x2][y1-1][k] - arr[x1-1][y2][k] + arr[x1-1][y1-1][k] 이다 그 이유는 아래 그림으로 설명 가능하겠다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamW.. 2022. 9. 22.
[BAEKJOON] 아기상어 ※ 아기상어가 먹을 수 있는 물고기를 찾는다고 해서 바로 먹으면 금물! 먹을 수 있는 물고기 리스트에 저장해놨다가 가장 위에 있는, 그 다음으로 가장 왼쪽에 있는 물고기 딱 한 마리만 먹을 수 있다는 것을 잊지 말자. 이때 활용한 것이 Comparable 인터페이스이다. 아기상어와 물고기의 거리를 나타낼 dist 필드를 기준으로 정렬해줄 건데, 아래 코드를 보면 거리가 같을 경우, 가장 위쪽(x 좌표가 더 작은)에 있는 물고기로, 물고기 위치를 상하로 따질 수 없는 경우는 최후의 수단으로 가장 왼쪽(y좌표가 더 작은)에 있는 물고기를 선택할 수 있도록 compareTo() 메소드가 정의되어 있다. ✅ 반복, 종료조건 파악하기 초기 위치에서 가장 가까이에 있는 위치의 물고기를 찾아나선다(bfs). 가장 가.. 2022. 8. 30.
[BAEKJOON] 스위치 켜고 끄기 학생수만큼 받은 번호에 따라 스위치 처리 남학생일 경우 : 받은 번호의 배수인 스위치 모두 변경 (0 → 1 , 1 → 0) 여학생일 경우 : 받은 번호를 중심으로 상태가 대칭되는 스위치 모두 변경 (0 → 1 , 1 → 0) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BaekJoon1244 { static int N, student; static int[] arr; public static void main(String[] args) throws IOException { BufferedReader .. 2022. 8. 2.
[BAEKJOON] 연구소 0 - 안전 지역 1 - 벽 2 - 바이러스 우리의 목표는 3개의 벽을 세워 최대한 바이러스가 퍼지지 않게 해야 한다. 먼저 벽을 세울 수 있는 안전 지역 3 곳을 '조합' 하자. 조합이 이루어졌을 때마다 바이러스가 모두 퍼졌다 가정하고, 남은 안전 지역의 수를 세어 최댓값을 반환하면 된다. 문제 풀이 팁 1. 연구소 초기 상태를 입력 받아 저장할 때 바이러스의 위치, 안전 지역 위치를 각각의 리스트에 담는다. → 벽을 세울 위치 3 곳을 조합할 때 안전 지역(0)인지 확인하는 조건문 없어도 됨! 리스트에 담긴 위치에서만 3곳 조합하면 됨 2. 벽을 세울 위치 3곳을 조합했을 때의 연구소 상태에서 바이러스를 퍼뜨려본다. 그리고 남은 안전 지역 수를 센다. 안전 지역 수의 최댓값을 갱신한다. 1️⃣ 벽을 .. 2022. 7. 21.
[Programmers] 메뉴 리뉴얼 https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 "스카피"는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로 구성.. 2022. 7. 17.
[Programmers] 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 .. 2022. 7. 7.