본문 바로가기
728x90
반응형

코딩테스트190

[프로그래머스/java] 124 나라의 숫자 - num[n % 3] https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 이 문제, 쉬운 것 같지만 어려웠다. 단순히 3으로 나눈 나머지만을 활용하여 푸는 문제인 줄 알았건만, 효율성 문제에서 시간초과로 탈탈 털려버렸다. 아래 와 같은 코드는 시간 초과가 나서 실패한 코드다. class Solution { public String solution(int n) { String answer = ""; int num = n, r = 0; while(num > 0) { r = num % 3; num /= 3; if(r == 0) { num--; r = 4; } answer = r + answer; } return.. 2022. 3. 13.
[프로그래머스/java] 소수찾기 - 백트래킹 사용(예제 코드 포함) https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 문제의 카테고리가 완전탐색이다. 완전탐색은? 바로 백트래킹을 쓰면 된다. 모든 조합을 브루트 포스로 다 구하면 모든 경우에 대해서 값을 다 구할 수 있다. 다음은 백트래킹 예시이다. int val = 0; boolean[] check = new boolean[len]; public void backTracking(int len, int limit,.. 2022. 3. 4.
[프로그래머스/java] 가장 큰 수 - Arrays.sort Comparator Override https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 이 문제를 풀 때, 제일 먼저 생각했던 풀이 방법이 백트래킹(완전탐색) 이었다. 큰 고민 없이 주어진 배열에서 모든 수를 조합해서 도출해낼 수 있는 쉬운 결론이었다. MaximumNumber.java package maximumNumber; import java.util.Arrays; import .. 2022. 3. 2.
[프로그래머스/java] 괄호 회전하기 - Stack 사용 https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr Stack을 이용하면 쉽게 풀 수 있다. 마지막에 Stack이 비어있는지 아닌지 확인해 줘야한다. package bracketRotate; /** * https://programmers.co.kr/learn/courses/30/lessons/765023 * * 괄호 회전하기 * * Stack을 이용하여 풀면 쉽게 풀린다. * * 마지막에 stack 안에 값이 있는지 확인해주어야 한다. */ import java.util.Stack; public class BracketRotate { public static void main(String[.. 2022. 2. 26.
[프로그래머스/java] 카카오프렌즈 컬러링북 - 카카오 기출 https://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 값이 0인 부분은 영역으로 카운트하면 안된다. 제일 넓은 영역을 구하는 것이므로 BFS를 사용하여 풀면 된다. package kakaoFriendsColoringBook; /** * https://programmers.co.kr/learn/courses/30/lessons/1829 * * 카카오프렌즈 컬러링북 - 카카오 기출 * * 값이 0인 부분은 카운트 하면 안.. 2022. 2. 26.
[프로그래머스/java] 게임 맵 최단거리 - BFS 사용 https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 시작위치에서 목적지까지 최단거리를 구하는 문제는 무조건 BFS로 풀어야한다. 최단거리를 구하는 문제는 BFS 만한 것이 없다. import java.util.*; class Solution { int[] dy = {1, 0, -1, 0}; int[] dx = {0, 1, 0, -1}; boolean[][] v.. 2022. 2. 25.
728x90
반응형