728x90

java 23

[프로그래머스][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..

[프로그래머스][JAVA] 이중우선순위큐

programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr PriorityQueue를 두개 만들어 하나는 내림차순으로 정렬하여 최대값을 빼야할 경우에는 내림차순으로 정렬된 Queue에서 값을 빼고 최소값을 빼야할 경우에는 오른차순으로 정렬된 Queue에서 값을 빼는 방법으로 풀었다 import java.util.*; class Solution { public int[] solution(String[] operations) { PriorityQueue hi = new PriorityQueue(); PriorityQueue ro = new PriorityQueue(Collections.reverseOrder());..

[프로그래머스][JAVA] 등굣길

programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 대표적인 동적 계획법 문제였다 집을 기준으로 1 이라 두고 좌표의 왼쪽과 위의 값을 더하며 저장하는 방식으로 풀었다 class Solution { private static int[][] nodes; public int solution(int m, int n, int[][] puddles) { nodes = new int[n][m]; for(int i=0;i

2021 네이버 신입 공채 코딩테스트 후기 - JAVA

늦었지만 후기를 작성해보고자 한다 총 2시간을 봤고 4문제가 나왔다 4문제중 3문제를 맞추긴 했지만 테스트케이스를 많이 주지 않아 예외가 많을 수 도있다ㅠㅠ 약관때문에 문제에 대해 자세히는 얘기 못하지만 느낌만 적어보고자 한다 전체적으로 문제난이도는 중 정도인것 같다 1번문제는 구현문제였다 예외처리만 잘 할수있었다면 아주 쉬운문제였던거 같다 2, 3번문제는 효율성 문제였다 프로그래머스 기준 2~3level문제 정도의 난이도 였던거 같다 4 번문제는 완전 탐색 문제였던거 같은데 많이 어려웠다 진짜 많이ㅠ 이 문제는 많이들 못풀었을것 같다 작년부터 재미삼아 또는 느낌을 보고자 코딩테스트를 종종 봤는데 제대로 취업을 위해 코딩테스트를 준비한건 처음이고 많이 긴장했는데 난이도가 아주 높지 않아 다행이였다 결과는..

Study/취업준비 2021.05.05

[프로그래머스][JAVA] 2 x n 타일링

programmers.co.kr/learn/courses/30/lessons/12900 [ 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr ](https://programmers.co.kr/learn/courses/30/lessons/12900) 처음에는 동적계획법을 이용해 풀고자 했으나 시간초과가 떠벼렸다 그 후 규칙성을 찾아보고자 고민한 결과 n에따른 피보나치 수열이 결정됨을 알아냈다 아래를 확인해보자 n = 0 일경우의 타일배치의 경우의 수는 0 n = 1 일경우의 타일배치의 경우의 수는 1..

[프로그래머스][JAVA] 네트워크

programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr dfs를 통해 풀었다 노드의 개수 크기의 노드를 방문 했음을 체크할 boolean 타입의 check배열을 통해 방문하지 않은 노드가 존재한다면 dfs를 돌려 노드와 연결된 모든 노드들의 check 배열들을 true로 만들었다 과정이 끝날때마다 하나의 네트워크가 있다는 뜻이므로 answer++를 해줬다 class Solution { public int solution(in..

[프로그래머스][JAVA] 순위

programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 방향성이 있는 그래프의 최단거리 알고리즘이다 선수들을 노드라고 생각하고 노드에서 노드의 최단 경로가 존재한다면 순위를 특정지을 수 있다 판단할 수 있고 없다면 순위를 특정지을 수 없다 판단할 수 있다. 그래프 최단거리 알고리즘의 대표적인 알고리즘인 플로이드 와샬 알고리즘을 적용하여 풀었다. 이때 max값은 Integer.MAX_VALUE로 할 경우에 max값을 서로 더해 비교하는 부분때문에 오버플로우가 발생한다 따라서 max 값은 문제 제한사항에 겹치지 않을만한 적당히 큰 수로 정하..

[프로그래머스][JAVA] 정수 삼각형

programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 대표적인 동적계획법 문제 같았다 항상 좌우 양끝은 내려올 수 있는 경로가 정해져 있었고 꼭대기를 기준으로 내려가며 더할때마다 올수있는 경로중 최대값을 위치에 저장한다면 불필요한 연산을 줄일 수 있다. 입력 : [7] [3, 8] [8, 1, 0] [2, 7, 4, 4] [4, 5, 2, 6, 5] 입력은 위와같이 주어지며 왼쪽대각선을 갈때는 y++, 오른쪽 대각선을 갈때는 x++ y++ 와같은 방법으로 이동시켰다 class Solution { priv..

[프로그래머스][JAVA] 디스크 컨트롤러

programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr PriorityQueue를 이용해 푼 문제이다 만약 queue가 비어있다면 다음 작업을 수행하는 사이에 들어오는 요청들을 소요시간 기준으로 오름차순 정렬하여 종료시간 - 요청시간을 더하는 식으로 구현하였다 주의할점은 하나의 작업이 끝나고 다음작업을 할때마다 작업중 에 들어오는 요청은 모두 PriorityQueue를 통해 정렬 해야한다. import java.util.*;..

728x90