CodingTest(64)
-
백준(Backjoon) 10798, 세로읽기
문제풀이 행과열을 이용한 이중 반복문으로 세로 읽기를 수행한다. 단, 바같쪽 반복문이 열이고 안쪽 반복문이 행이다. 유의해야할 점은 배열내에 각각의 행의 단어 길이가 다르다는 점인데 처음 입력을 받을때 빈칸인 부분은 null이 아닌 공백("")으로 저장한다. 다음과 같이 할 수 있는 이유는 한줄에 입력할 수 있는 단어들의 최대 길이가 15로 고정되어 있기 때문이다. 소스코드 public class Main { public static String solution(String[][] board) { StringBuilder sb = new StringBuilder(); for(int col=0;col
2021.06.30 -
백준(Backjoon) 10816, 숫자 카드 2
문제풀이 각각의 정수타입 카드들을 정수형 리스트로 입력받은 다음 HashMap을 활용하여 숫자에 대해서 카운트한다. public class Main { public static String solution(List my_cards, List cards) { StringBuilder sb = new StringBuilder(); Map map = new HashMap(); for(int card : my_cards) { // hashmap에 card가 포함되어 있지 않은 경우 1로 초기화 if(!map.containsKey(card)) { map.put(card, 1); } else // 포함되어 있는 경우 1 누적 { map.put(card, map.get(card)+1); } } // cards 리스트..
2021.06.28 -
백준(Backjoon) 2164, 카드2
문제풀이 자료구조중 큐(Queue) 구조를 이용하여 문제를 해결한다. 첫번째는 큐에서 제일 앞의 수를 제거하고 그다음 2번째인 수를 제거하고 제거한 수를 다시 추가한다. 이러한 과정을 큐 구조에서 1개가 될때까지 계속 반복한다. 최종적으로 남은 1개의 카드의 숫자를 반환하고 종료한다. 소스풀이 public class Main { public static int solution(Queue q) { while(q.size()!=1)// queue 구조에서 1개가 남을때까지 반복 { q.poll();// 카드한장을 버림 q.add(q.poll());// 제일 위의 카드를 제일 뒤로 보냄 } return q.peek();// queue 구조의 마지막 1개 남은 카드의 수를 반환 } public static vo..
2021.06.25 -
백준(Backjoon) 10866, 덱
문제풀이 Deque 클래스를 선언하고 필드 멤버로 List 리스트를 선언한다. 소스코드 public class Main { static class Deque { private List deque; Deque() { deque = new ArrayList(); } void push_front(int x) { deque.add(0, x); } void push_back(int x) { deque.add(x); } int pop_front() { if(empty()==1) { return -1; } return deque.remove(0); } int pop_back() { if(empty()==1) { return -1; } return deque.remove(size()-1); } int size() { ..
2021.06.25 -
백준(Backjoon) 1966, 프린터 큐
문제풀이 위 문제를 해결하기 위해서 Node 클래스를 정의하였다. Node 클래스는 id와 priority 정수형 필드를 가지고 있다. id 필드를 정의한 이유는 지정한 문서가 몇 번째로 인쇄되었는지 알기 위해서이다. 이 글에서는 해당 변수를 target이라 정의하였다. priority 필드를 활용하여 알지 못하는 이유는 priority 필드는 중복이 가능하기 때문이다. 문제핵심 큐 구조의 맨 앞에 존재하는 인쇄하고자 하는 문서가 다른 문서들보다 우선순위(priority)가 제일 높은지 검사하는 것 만약 맨 앞의 인쇄 문서가 다른 문서들보다 우선순위가 작은 경우 큐 구조 맨 뒤로 보내야 하는 것 마지막으로 우선순위가 제일 높아 큐 구조에서 제거될때 제거된 문서의 id가 몇 번째로 인쇄되었는지 궁금한 ta..
2021.06.25 -
백준(Backjoon) 1212, 8진수 2진수
문제풀이 입력으로 8진수가 입력되었다고 가정합니다. 위 문제를 해결하기 위해서 저는 입력을 정수가 아닌 문자열(String)로 받았습니다. 그리고 반복문을 통하여 앞에서부터 문자열 타입 숫자를 2진수로 변환하여 StringBuilder 타입의 변수에 이어 붙였습니다. 단, 여기서 주의할 점은 입력으로 0이 들어왔을 경우에는 0을 반환하도록 설정하였습니다. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { private static String[] map = {"000","001","010","011","100","101","110","111"};..
2021.06.24