본문 바로가기

Coding Test/프로그래머스19

[프로그래머스] Lv.2 구명 보트 (자바) 문제 설명  무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다.예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다.구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다.사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하도록 solution 함수를 작성해주세요.제.. 2024. 6. 29.
[프로그래머스] Lv.2 올바른 괄호 (자바) 문제 설명 올바르게 쌍을 이루는 괄호의 정의는 '(' 문자로 열면 ')' 문자로 닫아야 함을 의미합니다.예를 들어,"()()" 또는 "(())()"는 올바른 괄호입니다.")()(" 또는 "(()("는 잘못된 괄호입니다.'(' 또는 ')'로만 구성된 문자열이 주어지면 s문자열이 s올바른 괄호이면 true를 반환하고 그렇지 않으면 false를 반환하는 해결 함수를 완성하세요.제약문자열의 길이 s: 100,000 이하의 자연수문자열은 s'(' 또는 ')'로만 구성됩니다.예에스답변"()()"진실"(())()"진실")()("거짓"(()("거짓예시 #1위의 예와 동일합니다. 문제 분석1. Stack을 사용하여 짝이 맞으면, 즉 올바른 괄호"( )"면 제거 하자. -> 짝짓는 문제는 stack 이용( 햄버거, 인형뽑.. 2024. 6. 26.
[프로그래머스] Lv.1 성격 유형 검사하기 (java) 전체 코드  - 수정 전 import java.util.*;class Solution { public String solution(String[] survey, int[] choices) { String answer = ""; int[] score = {3,2,1,0,1,2,3}; // 성격 유형 등록하기 char[] mbti_char = {'R', 'T', 'C', 'F', 'J', 'M', 'A','N'}; HashMap mbti = new HashMap(); for(char c : mbti_char) { mbti.put(c, 0); .. 2024. 5. 17.
[프로그래머스] Lv.1 체육복 (java) 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다.전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 .. 2024. 5. 9.
[프로그래머스] Lv.1 공원산책 (java) 문제  지나다니는 길을 'O', 장애물을 'X'로 나타낸 직사각형 격자 모양의 공원에서 로봇 강아지가 산책을 하려합니다. 산책은 로봇 강아지에 미리 입력된 명령에 따라 진행하며, 명령은 다음과 같은 형식으로 주어집니다.["방향 거리", "방향 거리" … ]예를 들어 "E 5"는 로봇 강아지가 현재 위치에서 동쪽으로 5칸 이동했다는 의미입니다. 로봇 강아지는 명령을 수행하기 전에 다음 두 가지를 먼저 확인합니다.주어진 방향으로 이동할 때 공원을 벗어나는지 확인합니다.주어진 방향으로 이동 중 장애물을 만나는지 확인합니다.위 두 가지중 어느 하나라도 해당된다면, 로봇 강아지는 해당 명령을 무시하고 다음 명령을 수행합니다.공원의 가로 길이가 W, 세로 길이가 H라고 할 때, 공원의 좌측 상단의 좌표는 (0, 0.. 2024. 5. 7.
[프로그래머스] Lv.1 달리기 경주 (Java) 문제 설명 얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다.선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수로 주어질 때, 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순서대로 배열에 담아 return 하는 solution 함수를 완성해주세요. 제한사항5 ≤ p.. 2024. 5. 5.