728x90

프로그래머스 코딩테스트 연습/Level2 10

[프로그래머스][JAVA] 괄호 회전하기

programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 기존에 존재하던 많은 올바른 괄호만들기 문제를 응용하는 문제였다 거기에 문자열 회전만 추가하는 문제로 문자열 회전은 앞의 문자를 하나 잘라내 뒤에 다시 붙혀넣는 식으로 풀었다 import java.util.Stack; class Solution { public int solution(String s) { int answer = 0; for(int i =0;i

[프로그래머스][JAVA] 가장 큰 수

programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 정렬 방법을 고민하느라 조금 헤맸던 문제이다 Comparator를 이용해 쉽게 풀수 있던 문제였다 전 배열과 현재 배열을 String 형태로 순서를 서로 바꿔 더해 더 큰 값이 앞으로 오도록 정렬하는 방식으로 풀었다 import java.util.*; class Solution { public String sol..

[프로그래머스][JAVA] 전화번호 목록

programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 해시 카테고리에 있었지만 해시문제인지는 잘 모르겠다 배열을 오름차순 정렬한다면 현재 위치 이전의 값이 접두어가 아니라면 그 외의 값들은 절대 접두어일 수 없다는 점을 이용하여 풀었다 import java.util.*; class Solution { public boolean solution(String[] phone_book) { boolean answer = true; ..

[프로그래머스][JAVA] 튜플

programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 우선 들어온 값인 s를 길이가 짧은 집합 순으로 2차원 배열의 형태로 가공해줬다 그리고 배열을 순회 하며 이전 배열에는 없던 요소를 return 값에 추가하는 방식으로 풀어냈다 import java.util.*; class Solution { public int[] solution(String s) { s = s.substr..

[프로그래머스][JAVA] 카카오프렌즈 컬러링북

programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 동적 계획법으로 풀었다 방문 확인을 위해 picture배열과 같은 크기의 boolean 타입의 배열 visit 을 만들고 picture배열을 확인하며 0이 아니면서 위치의 visit 배열이 false일때 DP 함수를 돌렸다 DP함수에서는 상하좌우로 움직이며 방문 표시와 함께 총 넓이를 저장 해줬고 연산이 끝나면 기존에 있던 최대 넓이를 의미하는 변수인 maxCount와 Max 비..

[프로그래머스][JAVA] 더 맵게

programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) 모든 scoville 배열의 값이 섞은 음식의 스코빌 지수 즉 K 값 이상이 되도록 했을때의 연산 횟수를 리턴하는 문제이다 당연히 스코빌 지수가 작은 값부터 연산을 진행 해야 하며 연산이 끝난 값도 다시 작은 값들과 연산을 진행 해야 한다 따라서..

[프로그래머스][JAVA] 타겟 넘버

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를 통해 풀었다 class Solution { public int solution(int[] numbers, int target) { return dfs(numbers,0,0,target); } public int dfs(int[] numbers,int index, int sum, int ta..

[프로그래머스][JAVA] 124 나라의 숫자

programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 얼핏보면 이 문제는 3진법 변환 문제와 유사해 보인다 그러나 124 나라에서는 0이 없다는 것이 이 문제의 핵심인거 같다 따라서 n%3 == 0 이라면 3진법의 0 대신 4를 저장하고 n-- 를 해주면 된다 import java.util.Stack; class Solution { public String solution(int n) { String answer = ""; int share = n; int remainder = -1; while (share!=0) { remainder = share % 3; share = share / 3; if (..

[프로그래머스][JAVA] 기능개발

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

피보나치 수(c언어)

https://programmers.co.kr/learn/courses/30/lessons/12945?language=c 코딩테스트 연습 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = programmers.co.kr 1. n=1,2,3일때의 경우는 먼저 배열에 넣어둔다.(3이하일경우는 for문이 동작하지 않으므로) ※처음에는 재귀함수를 이용하였으나 n의 수가 커지면 시간초과가 되어 ..

728x90