본문 바로가기

알고리즘145

[프로그래머스] 진료 순서 정하기 - 5가지 방식의 자바 풀이 📌 문제 외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요. ⚔ 제한 사항 중복된 원소는 없습니다. 1 ≤ emergency의 길이 ≤ 10 1 ≤ emergency의 원소 ≤ 100 👀 문제 해석 이 문제에서는 환자들의 응급 상황을 나타내는 정수 배열 emergency가 주어진다. 배열에서 주어지는 숫자를 기준으로, 응급도가 높은 순서대로 환자들에게 진료 순서를 부여해야 한다. 여기서 각 숫자는 응급도를 의미한다. 정렬 알고리즘이 사용되는 문제라고 볼 수 있다. 주어진 배열을 정렬하되, 원래 배열의 순서에 대한 정보.. 2024. 4. 21.
[프로그래머스/자바] 옹알이 (1) - 두 가지 풀이 방식 [프로그래머스/자바] 옹알이 (1) - 두 가지 풀이 방식 📌 문제 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling 이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. ⚔ 제한 사항 입출력 예 설명 입출력 예 #1["aya", "yee", "u", "maa", "wyeoo"]에서 발음할 수 있는 것은 "aya"뿐입니다. 따라서 1을 return합니다.입출력 예 #2["ayaye", "uuuma", "ye", "yemawoo", "ayaa"]에서 발음할 수 .. 2024. 1. 11.
백준 5397 키 로거 (JAVA 자바 풀이) 백준 5397 키 로거 (JAVA 자바 풀이) 문제 창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다. 키로거는 사용자가 키보드를 누른 명령을 모두 기록한다. 따라서, 강산이가 비밀번호를 입력할 때, 화살표나 백스페이스를 입력해도 정확한 비밀번호를 알아낼 수 있다. 강산이가 비밀번호 창에서 입력한 키가 주어졌을 때, 강산이의 비밀번호를 알아내는 프로그램을 작성하시오. 강산이는 키보드로 입력한 키는 알파벳 대문자, 소문자, 숫자, 백스페이스, 화살표이다. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이.. 2024. 1. 3.
백준 2118 두 개의 탑 (JAVA 자바 풀이) 백준 2118 두 개의 탑 (JAVA 자바 풀이) 문제 1번부터 N번까지의 지점이 있다. 각각의 지점들은 차례로, 그리고 원형으로 연결되어 있다. 이 지점들 중 두 곳에 두 개의 탑을 세우려고 하는데, 두 탑의 거리가 최대가 되도록 만들려고 한다. 지점들이 원형으로 연결되어 있기 때문에, 두 지점 사이에는 시계방향과 반시계방향의 두 경로가 존재한다. 두 지점 사이의 거리를 잴 때에는, 이러한 값들 중에서 더 작은 값을 거리로 한다. 연결되어 있는 두 지점 사이의 거리가 주어졌을 때, 두 탑의 거리의 최댓값을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에 지점의 개수 N(2 ≤ N ≤ 50,000)이 주어진다. 다음 N개의 줄에는 차례로 두 지점 사이의 거리가 양의 정수로 주어진다. 전체 거리의 총 합은.. 2024. 1. 2.
백준 11725 트리의 부모 찾기 (JAVA 자바 풀이) 백준 11725 트리의 부모 찾기 (JAVA 자바 풀이) 문제 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 출력 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다. 💡 풀이 과정 트리는 인접 행렬과 인접 리스트를 통해 구현할 수 있는데 문제에서 N의 개수가 최대 10만이다. 인접 리스트로 구현하면 10만 x 10만 = 100만의 공간을 차지하게 되므로 메모리가 4바이트라고 할 때 40기가의 메모리를 필요하므로 현재 문제에서는 사용할 수 없다. 인접.. 2023. 12. 31.