[프로그래머스, Java] 타겟 넘버
·
CodingTest/Programmers
⭐ 아이디어💡풀이 1- 재귀 풀이class Solution { public int solution(int[] numbers, int target) { return sumCount(numbers, target, 0, 0); } int sumCount(int[] numbers, int target, int index, int sum) { if(index == numbers.length) { if(sum == target) { return 1; } return 0; } return sumCount(numbers, target, index + 1, sum + ..
[프로그래머스, Java] 단어 변환
·
CodingTest/Programmers
⭐ 아이디어모두를가지고~~ -> dfs (stack)가능한 최소의 경우 -> bfs (queue)begin hittarget cogwords 안에 target이 없으면 return 0(begin, count=0)을 stack에 넣고 시작while(!isEmpty)꺼낸값과 하나만 차이나는 단어 찾기 -> 어떻게 최적화? target의 index로 분기하기 현재 target(i) 와 pop(i)가 같으면 넘어가 다르다면 -> pop(i)를 target(i)로 변경한 전체 문자를 words에서 찾기 -> 찾았다면 해당 단어로 변경하고 count+1 하기 -> target과 같다면 answer 와 count를 크기비교하여 작은 값을 저장하기 ..
[프로그래머스, Java] 게임 맵 최단거리
·
CodingTest/Programmers
💡풀이 1import java.util.ArrayDeque;import java.util.Queue;class Solution { public int solution(int[][] maps) { int sizeX = maps.length; // x 길이 int sizeY = maps[0].length; // y 길이 //sizeX*sizeY 배열 visited 만들기 boolean[][] visited = new boolean[sizeX][sizeY]; //분기 - bfs Queue queue = new ArrayDeque(); queue.offer(new int[]{0, 0}); while(!qu..
[프로그래머스, Java] 네트워크
·
CodingTest/Programmers
💡풀이 1- node 클래스를 만들어서 풀이import java.util.ArrayDeque;import java.util.ArrayList;import java.util.Deque;import java.util.List;class Solution { class Node { String name; List links = new ArrayList(); boolean visited = false; Node(String name) { this.name = name; } private List getLinks() { return this.links; } private..
[프로그래머스, Java] 달리기 경주
·
CodingTest/Programmers
⭐아이디어배열에서 매번 해당 맴버의 번호를 찾으면 너무 느림1. 미리 map에 해당 맴버의 등수를 저장해둔다2. callings를 분기한다3. 해당 멤버의 위치를 map에서 찾는다4. 해당 멤버의 앞에 위치한 멤버의 위치도 map에서 찾는다.5. 배열에서 서로의 위치를 변경시킨다6. map에 저장된 위치값도 서로 바꾼다.💡풀이 1import java.util.HashMap;import java.util.Map;class Solution { public String[] solution(String[] players, String[] callings) { Map rank = new HashMap(); for(int i = 0; i GitHub - okjunghyeon/P..
[프로그래머스, Java] 유연근무제
·
CodingTest/Programmers
⭐풀이 아이디어일주일동안 자신이 설정한 출근 희망 시각 + 10분까지 어플로 출근매일 한 번씩만 어플로 출근모든 시각은 시에 100을 곱하고 분을 더한 정수로 표현됩니다10시 13분은 1013이 되고 9시 58분은 958*토요일, 일요일의 출근 시각은 이벤트에 영향을 끼치지 않습니다1 2 3 4 5 6 7월 화 수 목 금 토 일{"월", "화"...}(startday - 1) % 7startday 가 6,7(토,일)이 아닌동안으로 계산해보기모든 schedule에 10을 더한 뒤timelog가 schedule보다 크면 다음사람으로 넘어가도록 구현분기 끝날때까지 다음사람으로 넘어가지 않았다면 지각이 없다고 판단하여 answer 증가💡풀이 1class Solution { public int soluti..