프로그래머스

알고리즘

[Java] 다리를 지나는 트럭 - level 1

https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr import java.util.LinkedList; import java.util.Queue; class Solution { public int solution(int bridge_length, int weight, int[] truck_weights) { int answer = 0; // 넘어가야 할 트럭의 갯수 Queue start..

알고리즘

[Java] 기능개발 - level 2

https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr import java.util.*; class Solution { public int[] solution(int[] progresses, int[] speeds) { List answer_list = new ArrayList(); Queue days= new LinkedList(); double day = 0; for (int i=0; i 값을 올림(ce..

알고리즘

[Java] 프린터 - level 2

https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr import java.util.Collections; import java.util.PriorityQueue; import java.util.*; class Solution { public int solution(int[] priorities, int location) { int answer = 0; PriorityQueue pq = new PriorityQueue..

알고리즘

[Javascript] 큰 수 만들기 - level 2

https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr function solution(number, k) { var answer = ""; let tmp_n = 0; let tmp_idx = 0; k = number.length - k; for (let idx=0; idx tmp_n) { tmp_n = number[idx]; tmp_idx = idx; } // 숫자가 0일 때 if (number[idx] == 0 || idx == number.length-k-1) { number.splice(idx,1); tmp_n = 0; idx = tmp_idx; k--; idx = -1; } } ret..

알고리즘

[Python] 순위 검색 - level 2 (효율성 통과 못함)

https://programmers.co.kr/learn/courses/30/lessons/72412

알고리즘

[Python] 타겟 넘버 - level 2

https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 깊이우선탐색(DFS), 너비우선탐색(BFS)을 이용하여 주로 푼다고 한다. 프로그래머스 문제 분류 또한 위의 두가지로 분류되어있다. 나는 BFS를 이용하여 풀었다. DFS로 푼다면 재귀함수처럼 타고타고 들어가는 방식으로 풀게 될것이다. 코드는 매우 간단하다. numbers에 담겨있는 숫자들을 for문으로 하나..

알고리즘

[Python] 카펫 - level 2

https://programmers.co.kr/learn/courses/30/lessons/42842?language=python3 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 넓이는 가로x세로 라서 yellow에 제곱근을 해주어 for문을 실행시켰다. 넓이=면적이기때문에 아래와 같이 가능하다. 또는 근의 공식을 써서 풀 수 있다는데 대단한 사람들이 많다. 난 이렇게 해야지... def solution(brown, yellow): # 가로x세로 = 넓이(=면적)(=brown+yellow) answer ..

알고리즘

[Javascript] 시저 암호 - level 1

https://programmers.co.kr/learn/courses/30/lessons/12926 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr function solution(s, n) { // 문자열같이 배열이 아닌것들을 map에서 쓸때 .call()을 씀 const answer = Array.prototype.map.call(s, c => { let a = ''; // c가 알파벳일 때 if ((c >= 'a' && c = 'A' && c 'z') { a = 'a'.ch..

알고리즘

[Javascript] 폰켓몬 - level 1

https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr function solution(nums) { // 폰켓몬 수의 반을 골라야하기 때문에 종류가 다 다를 때 최대값은 max까지 가능함 const max = nums.length / 2; // 중복되는걸 제거하고 폰켓몬이 몇 종류가 있는지 알기 위해 set에 담아줌 const setNum = new Set(nums); // set이 전체 폰켓몬의 1/2가 안되면..

알고리즘

[JAVA] 같은 숫자는 싫어 - level 1

import java.util.*; public class Solution { public int[] solution(int []arr) { StringBuilder temp = new StringBuilder(); StringBuilder res = new StringBuilder(); for (int i : arr) { temp.append(String.valueOf(i)); } // 중복 제거 for (int i = 0; i < temp.length(); i++) { if ((i != temp.length() - 1) && (temp.charAt(i) != temp.charAt(i + 1))) { res.append(temp.charAt(i)); } else if (i == temp.length()..

Giwonnnnnnn
'프로그래머스' 태그의 글 목록