PS
-
프로그래머스 - Lv1. 다트 게임PS 2022. 3. 4. 23:58
문제 : [2018 KAKAO BLIND RECRUITMENT 1차] 다트 게임 문제 내용은 여기. 쉽게 말해, (맞춘 점수)^(맞춘 영역의 제곱)*(보너스/이전보너스/패널티 여부)의 총합을 구하면 된다. 풀이 import java.util.stream.Stream; public class DartGame { public int solution(String str) { // sdt - S : single (^1) / D : double (^2) / T : Triple (^3) // bp - * : 보너스(* 2) / # : 패널티(* -1) String[] points = str.replaceAll("\\D+", " ").split("\\s+"); String[] calcs = Stream.of(str...
-
프로그래머스 - Lv1. 비밀지도PS 2022. 3. 4. 12:54
문제 : 비밀지도 문제 내용은 여기. 쉽게 말해, 두 개의 숫자 입력값을 각각 이진수로 전환하고, 이진수의 1을 #으로 치환한 뒤 결과물을 합치면 된다. 풀이 static int N; public String[] solution(int n, int[] arr1, int[] arr2) { N = n; // String[] wall1 = intToWall(arr1); // String[] wall2 = intToWall(arr2); // return combineWall(wall1, wall2); return intToWall2(arr1, arr2); } private static String[] intToWall2(int[] arr1, int[] arr2) { String[] wallArr = new St..
-
프로그래머스 - Lv1. 2016년PS 2022. 3. 2. 11:32
문제 : 2016년 문제 내용은 여기. 쉽게 말해, 어... 문제가 워낙 단순해서 달리 쉽게 말할 방법이 없다. 풀이 public class Year2016 { public String solution(int a, int b) { String[] days = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"}; int[] months = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int totalDays = 0; for (int i = 1; i
-
프로그래머스 - Lv1. 예산PS 2022. 3. 1. 22:46
문제 : 예산 문제 내용은 여기. 쉽게 말해, 지원할 수 있는 부서의 최대 수를 구해서 돌려주면 된다. 풀이 import java.util.ArrayList; import java.util.List; class Solution { public int solution(int[] d, int budget) { List dlist = new ArrayList(); for (int item : d) dlist.add(item); dlist.sort(null); // 위의 세 줄은 다음과 같이 한 줄로 고칠 수 있다: // Arrays.sort(d); //다음 for문에서 dlist 대신 d 사용. int answer = 0; for (int ditem : dlist) { budget -= ditem; if (b..
-
프로그래머스 - Lv1. 신고 결과 받기PS 2022. 2. 28. 14:30
문제 : 신고 결과 받기 문제 내용은 여기. 쉽게 말해, "신고자 피신고자" 형태로 신고 메시지가 들어올건데, 이를 적절히 잘 가공하고 카운트해서, '회원별 정지회원신고횟수' 배열을 리턴하라는 것. '정지회원 신고횟수' 배열임을 잊고 '정지회원을 신고한 회원' 배열을 리턴하려고 하는 순간 문제의 의도와는 맞지 않게 번거롭게 된다(처음에 이렇게 풀었다). 풀이 class Solution { public int[] solution(String[] id_list, String[] report, int k) { int[] answers = new int[id_list.length]; // 답장나갈 숫자 배열 - ID순 Set reports = new HashSet();..
-
프로그래머스 - Lv1. 3진수 뒤집기PS 2022. 2. 27. 23:09
문제 : 3진수 뒤집기 문제 내용은 여기. 쉽게 말해, 어... 문제가 워낙 간단해서 쉽게 말할 것도 없다. 풀이 1) 처음 푼 방식 : 기능별로 메서드 나눔 class Solution { public int solution(int n) { String rt = getReverseTernary(n); return ternaryToDecimal(rt); } public String getReverseTernary(int number) { StringBuilder tNumbers = new StringBuilder(); while(true) { if (number < 3) { tNumbers.append(number); break; } tNumbers.append(number % 3); number /= 3..
-
프로그래머스 - Lv1. 실패율PS 2022. 2. 25. 14:36
문제 : 실패율 문제 링크는 여기. 쉽게 말해, 1 ~ N라운드까지의 라운드별 실패율(=도달한 사람/(도달한 사람 + 통과한 사람))을 구해서 내림차순 정렬하고 배열로 반환해라. 풀이 import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; class Solution { public int[] solution(int N, int[] stages) { HashMap stagesMap = new HashMap(); // 라운드별 진행유저 수 for (int roundUserCount : stages) { int putValue = (sta..