[PGS]

    [JAVA] 배열 자르기

    https://school.programmers.co.kr/learn/courses/30/lessons/120833 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] import java.util.stream.*; import java.util.*; class Solution { public int[] solution(int[] numbers, int num1, int num2) { return IntStream.range(num1, num2+1).map(num -> numbers[num]).toArray(); } }

    [JAVA] 배열 뒤집기

    https://school.programmers.co.kr/learn/courses/30/lessons/120821 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] import java.util.Collections; import java.util.*; import java.util.stream.*; class Solution { public int[] solution(int[] num_list) { List list = Arrays.stream(num_list).boxed().collect(Collectors.toList()); Collectio..

    [JAVA] 프로그래머스 - Summer/Winter Coding(~2018) 배달

    1. 풀이과정 주어진 K 시간내에 배달을 할 수 있느 마을을 구하는 문제다. 미방문 지점의 값을 항상 최소의 값으로 갱신하며 구하는 다익스트라 알고리즘으로 풀었다. 다익스트라 알고리즘 정리 : https://jasonoh22.tistory.com/41 최대값 INF는 최대 노드 개수(=최대 거칠 수 있는 간선의 개수) * 간선의 최대 weight +1로 설정 2. 코드 import java.util.*; class Solution { static int INF = 500001; public int solution(int N, int[][] road, int K) { int answer = 0; boolean[] visited = new boolean[N+1]; int[] dp = new int[N+1];..

    [JAVA] 기지국 설치

    풀이과정 1. 그리디 알고리즘을 활용하여 맨처음부터 범위가 될때 마다 기지국 설치 2. 이미 설치된 기지국 범위에 들어가지 않는다면 기지국 설치 3. 이미 설치된 기지국 범위에 들어간다면 그 범위 만큼 jump 코드 class Solution { public int solution(int n, int[] stations, int w) { int answer = 0; int index = 1; int position = 0; while(index

    [프로그래머스] 성격 유형 검사하기 자바

    풀이과정 1. survey의 choice로 점수를 받을 수 있는 map 생성 2. 점수 배치인 survyChoice 생성 3. survey의 요소로 점수배치표를 만들고 들어온 choice로 점수를 판별해 map에 저장한다. 4. 성격 유형 점수인 MBTI를 바탕으로 각 성격 유형 지표마다의 점수를 비교해 answer에 저장 5. 만약 점수가 같다면 사전순으로 answer에 저장했다. 사용 알고리즘 : 자료구조 Map을 사용하여 풀었다. 코드 import java.util.*; class Solution { public String solution(String[] survey, int[] choices) { String answer = ""; Map map = new HashMap(); for(int i=..

    프로그래머스 신고 결과 받기 [Java]

    풀이과정 1. 유저 ID를 기준으로 신고한사람을 저장해야하므로 Map 사용 2. value는 key를 신고한 유저의 아이디를 중복없이 저장해야하므로 HashSet 사용 3. 신고한 HashSet의 크기가 K보다 클 경우 idxMap의 value값 1씩 증가시켜줌 배운점 1. HashSet 의 형태는 [1,2,3]과 같은 리스트 형태이다. 2. map.get(to).add(from); 시 muzi = [apeach, ...] 이런식으로 저장된다. apeach를 더 넣어도 한번만 저장된다. 3. int myArray[범위]++; 위치 범위의 요소에 1을 증가시킨다. 고로answer[idxMap.get(name)]++; 는 이름위치를 만들고 이름위치의 요소 1를 증가시킨다. 출력 : ["muzi"의 이메일 받..

    [PGS] 문자열 내 P와 Y의 개수

    import java.util.Stack; class Solution { boolean solution(String s) { boolean answer = true; int Pnum =0, Ynum = 0; Stack stack = new Stack(); String[] strArray = s.toLowerCase().split(""); for(int i = 0; i< s.length(); i++){ stack.push(strArray[i]); } for(int i = 0; i < s.length(); i++){ String popedFromStack = stack.pop(); if(popedFromStack.equals("p"))Pnum +=1; else if(popedFromStack.equals("..

    [PGS] 자연수 뒤집어 배열로 만들기

    문제를 보자마자 그저 while문으로 나머지를 구하면서 넣어주면 되겠다라고만 생각하고 배열에 값을 넣어주려고 했습니다. 이렇게 ArrayIndexOutOfBoundsException 에러가 떴습니다. 왜 이렇게 에러가 뜨나 생각했는데 배열 크기 초기화를 안해서 index가 없는데 어케 넣어요! 이러고 있었다. 그렇게 들어오는 변수의 자리수를 구해서 배열 선언 후 값을 넣으니 해결되었다. class Solution { public int[] solution(long n) { int cnt = 0 ,i = 0; long num = n; while(n > 0){ n /= 10; cnt++; } int[] answer = new int[cnt]; while(num > 0) { answer[i] = (int)(n..