전체 글
-
[프로그래머스] 완주하지 못한 선수 자바 해시 맵 활용코딩테스트 2025. 4. 6. 12:01
https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제참가자명단 participant 와 완주자명단 completion이 있다.completion에 없는 유일한 완주 실패자 이름을 찾아 반환하시오.제한사항동명이인이 존재할 수 있음.접근1. 완주자리스트를 리스트 compList로 변환한다.2. 참가자명단을 순회하여 compList.contains로 이름을 찾는다.3. 찾았으면, 해당 인덱스를 리스트에서 제거하고 못찾았으면 이름을 answer에 담아 반환한다.public static String s..
-
[프로그래머스] k번째 수 자바 정렬코딩테스트 2025. 4. 6. 11:27
https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제{i, j, k} 의 모음으로 이루어진 commands를 주어진 배열 array에 대입하여array의 i번째 ~ j번째 까지 잘라 오름차순 정렬 한 후 k번째의 수를 배열에 담아 반환하시오. 접근1.k를 담을 list를 하나 생성한다.2.commands 를 순회하여 각각 i, j, k를 기준으로 array를 분류와 정렬 후 k번째 값을 list에 넣어 반환한다.public int[] solution(int[] array, int[][] co..
-
[프로그래머스] 모의고사 자바 완전순회코딩테스트 2025. 4. 6. 11:03
https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제세 사람은 각각 다음과 같은 방식으로 문제를 찍는다.1번 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...2번 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...3번 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...주어진 정답배열 answers와 세 사람의 답안을 비교해 가장 많은 정답을 ..
-
[프로그래머스] 체육복 자바코딩테스트 2025. 4. 6. 10:21
문제전체 학생수 n, 체육복을 도난당한 학생 번호 배열 lost, 여벌 체육복을 갖고 있는 학생 번호 배열 reserve가 있다.해당 정보를 바탕으로 체육수업에 참가할 수 있는 학생 수를 구하여라. 제한사항1. 체육복은 자기 번호의 바로 앞 뒤 한테만 빌릴 수 있다..2. 여벌 체육복을 가진 학생도 도난 당할 수 있다.3. 보유 갯수가 1개면 빌려줄 수 없다. 접근우선 배열로 해당 정보를 관리하며, 초기에 모든 값에 1을 부여한다.그 후 여벌 보유 학생들의 체육복 수를 + 1, 도난 당한 학생들의 체육복 수를 -1 처리.마지막으로 answer에 체육복 수 >=1 인 학생 수를 계산하여 마무리public int solution(int n, int[] lost, int[] reserve) { i..
-
[프로그래머스] 실패율 자바 리스트 정렬, 객체코딩테스트 2025. 4. 5. 17:15
문제N : 실패율 조사대상 전체 스테이지의 갯수stages : 현재 사람들의 도달 스테이지 (진행 중)실패율 : 현재 스테이지 진행 중인 사람 수 / 해당 스테이지에 도달 및 통과한 플레이어의 수 해당 스테이지에 도달한 플레이어가 없는 경우 실패율은 0. 각 스테이지 별 실패율을 계산하고 실패율이 높은 순으로 내림차순 정렬한 배열을 반환하시오.단 실패율이 서로 같은 경우, 작은 번호의 스테이지가 먼저 위치할 것. 제한사항stages에는 1 이상 N + 1 이하의 자연수가 담겨있다접근각 스테이지에 도달한 플레이어의 수 현황을 Map에 담고 이에 근거해 실패율을 계산하는 로직을 구상하였으나실패율에 근거해 정렬하는 부분에서 막혔다.public int[] solution(int N, int[] stages) {..
-
[프로그래머스] 크레인 인형뽑기 게임 자바 Stack코딩테스트 2025. 4. 5. 11:42
https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제board는 인형뽑기기계의 내부 상황이다. 기계 맨 위 ~ 맨 아래까지를 순서대로 표현하고 있으며0 은 빈 공간, 1 ~ 100 은 인형의 종류를 의미한다.moves는 뽑은 열의 집합이다.뽑은 인형 == 직전에 뽑은 인형일 경우 두 인형을 제거한다.board에 moves대로 진행하였을 때 총 제거된 인형의 수를 구하시오.접근뽑은 인형을 쌓아두고 마지막 인형 == 뽑은 인형인지 파악하기 위해 Stack을 사용했다.public int soluti..
-
[프로그래머스] 키패트 누르기 자바 좌표 절대값코딩테스트 2025. 4. 5. 10:52
https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제주어진 numbers에 따라 핸드폰 키패드를 누를 때, 1,4,7은 왼손엄지, 3,6,9는 오른쪽엄지, 2,5,8,0은 두 손가락 중 가까운 손가락으로 누른다. 단 두 손가락 중 거리가 같다면 주 사용 손으로 누른다. 손가락은 상하좌우로만 움직일 수 있으며 키패드 이동 한 칸은 거리 1에 해당한다. 이 때, numbers를 누른 손가락을 표현하는 LR형태로 반환하시오.제한사항최초 손가락 위치는 왼손 : * , 오른손 : # 이다.접근numbe..
-
[프로그래머스] 두 개 뽑아서 더하기 자바 오름차순 정렬 Set코딩테스트 2025. 4. 4. 23:02
문제int 배열 numbers 에서 두 수를 뽑아 합해서 나올 수 있는 모든 케이스를 배열에 담아 오름차순으로 정렬한 후 반환하시오. 접근중복을 제거하기 위해 Set을 활용하여 두 수를 더한 값을 담고 반환하는 하도록 작성하였다.public int[] solution(int[] numbers) { Set sumSet = new HashSet(); for(int i = 0; i 발견된 문제1.결과 배열이 정렬되지 않음현재 코드는 HashSet에서 값을 꺼낸 순서대로 배열에 저장하므로 정렬 보장 안 됨.2.성능 문제 (대량 데이터 시)중첩 for문으로 인해 시간 복잡도가 O(n²) → 대량 데이터에서 성능 저하수정기존 for문으로 int[] 에 저장하던 과정을Set.stream()...