java
-
[프로그래머스] 다트게임 자바 리스트수정 합계코딩테스트 2025. 4. 6. 15:38
https://school.programmers.co.kr/learn/courses/30/lessons/17682 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제문자열 dartResult를 해석한 결과 점수를 구하시오.* 게임은 3회 진행* 회차별 점수는 0 접근1. 문자열에서 점수부분만 따로 추출하여 List에 넣음2. SDT 제곱계산용 메서드 별도 처리3. * # S D T 의 경우의 로직처리 구현public int solution(String dartResult) { int answer = 0; List points = new ArrayList(); //점수..
-
[프로그래머스] 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. 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()...
-
[프로그래머스] 삼진법 뒤집기 자바코딩테스트 2025. 4. 4. 22:32
https://school.programmers.co.kr/learn/courses/30/lessons/68935 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제주어진 n을 삼진수로 만든 후 뒤집어서 다시 십진수로 변환한 값을 구하여라.접근n % 3 값들을 차례대로 String으로 붙이면 뒤집어진 삼진수가 된다.이를 다시 십진수로 바꾸려면 각 자리수 값 * 3^제곱하여 변환한다. public static int solution(int n) { if(n == 0) return 0; StringBuilder reversedTernary = new StringBuilder(); ..