본문 바로가기

코딩 테스트 준비

(7)
[Java] 백준 알고리즘 14891번 문제 : 삼성 SW 역량 테스트 기출 문제 - 톱니바퀴 (Simulation, 시뮬레이션) --- 문제 --- --- 코드 --- LinkedList 를 활용해서 톱니 바퀴가 반시계 방향으로 이동하면 첫번째 값을 맨 뒤로 옮기고 시계 방향으로 이동하면 맨 뒤의 값을 첫번째로 옮기면서 회전 시켜 주었습니다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.io.IOException; import java.util.LinkedList; public class Bj14891 { public static LinkedList[] wheels; public static boolean[] between; public static void main(String..
[Java] 백준 알고리즘 14499번 문제 : 삼성 SW 역량 테스트 기출 문제 - 주사위 굴리기 (Simulation, 시뮬레이션) --- 문제 --- --- 코드 --- 조금 구질구질한(?) 방법이긴 하지만, 주사위 면들을 한 줄로 줄 세워 놓고, 방향에 따라 각 면에 있는 숫자들을 옮기면서 풀었습니다. 예를 들어서 문제에 나온 주사위 모습에서 1번인 면이 배열의 첫번째이고, 6번인 면이 배열의 마지막이라고 하면 dice = {1,2,3,4,5,6} 이런 식으로 주사위가 되어 있다고 했을 때, 주사위를 동쪽으로 움직이게 되면 dice = {4,2,1,6,5,3} 이렇게 1이 어떤 곳이 3번 면으로 가고, 2였던 곳은 계속 2번 면에 있고, 4였던 곳은 1번 면으로 돌아가게 됩니다. 이런 면의 움직임이 방향에 따라 정해져 있기 때문에 이런 움직임을 나타내는 배열을 선언 했습니다. public static final int[][] DI..
[Java] 백준 알고리즘 13458번 문제 : 삼성 SW 역량 테스트 기출 문제 - 시험감독 (Greedy Algorithm, 그리디 알고리즘) --- 문제 --- --- 코드 --- import java.util.Scanner; public class Bj13458 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); long[] stu = new long[N]; for(int i=0; i
[Java] SW Expert Academy 1949번 문제: [모의 SW 역량테스트] 등산로 조성 (DFS, 깊이 우선 탐색) --- 문제 --- 1949. [모의 SW 역량테스트] 등산로 조성 --- 코드 --- 최초로 이전 높이보다 높거나 같은 높이가 나왔을 때, K를 사용하면 되는데 현재의 높이에서 K 높이를 삭제하면 무조건 이전 높이보다 작아질수만 있다면야 K 를 1~K 부터 다 써볼 필요 없이 이전의 높이보다 1작게 봉우리를 파는 걸로 사용하면 됩니다. import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Sw1949 { public st..
[Java] Progrmmers 코딩테스트 연습 : 디스크 컨트롤러 (Heap) --- 문제 --- 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. - A: 3ms 시점에 작업 완료 (요청에서 종료까지 : 3ms) - B: 1ms부터 대기하다가, 3ms 시점에 작업을 시작해서 12ms 시점에 작업 완료(요청에..
[Java] 2020 카카오 공채 코딩테스트 문제 : 가사 검색(자료구조/ Trie 자료구조) --- 문제 --- 2020 KAKAO BLIND RECRUITMENT : 가사 검색 제시된 단어들 중 에서, 원하는 단어와 조건이 맞는 경우의 수를 세는 문제 정확도와 효율성을 둘 다 본다는 특징이 있는 문제였습니다. --- 코드 --- 문제를 보고 처음에 딱 든 생각은 완전탐색 이었습니다. queries 에 있는 단어들을 하나씩 가져와서 words에 있는 길이가 같은 단어들을 모두 검사하는 방식 입니다. 정확도에서는 만점을 받았지만, 역시나 효율성에서 막혔습니다 ㅠㅠ 그래서 어떤 방법이 좋을까 생각하다가, 카카오 페이지에 올라와있는 해설을 보게되었습니다. https://tech.kakao.com/2019/10/02/kakao-blind-recruitment-2020-round1/ 2020 신입 개발자..
[Java] 2020 카카오 공채 코딩테스트 문제 : 괄호 변환 --- 문제 --- 2020 KAKAO BLIND RECRUITMENT : 괄호 변환 문제 괄호가 올바르게 열리고, 닫히지 않는 경우를 수정해주는 문제 -> 알고리즘의 해답은 문제 속에 있고, 제시된 해답에 따라 코드를 작성하면 되는 굉장히 고마운 문제였다. --- 코드 --- import java.util.Stack; public class Prob2 { public static void main(String[] args) { String p = ")("; if(check(p)) { System.out.println(p); return; // return p; } System.out.println(divide(p)); } public static String divide(String p) { // 1...

728x90
반응형