목록코딩/삼성 SW 역량 테스트 기출 (19)
삐까냥의 파도타기
https://www.acmicpc.net/problem/15686 음..음.. 다듬지 않은 코드 import java.util.ArrayList;import java.util.Scanner; public class Q15686 {static int[][] map;static int mapSize, chickenNum, result = -1;static boolean[] isVisit;static ArrayList chickenList = new ArrayList();public static void main(String[] args) {Scanner sc = new Scanner(System.in);mapSize = sc.nextInt();chickenNum = sc.nextInt();map = new..
https://www.acmicpc.net/problem/15685 어렵다고 느껴졌네요. 특히 90도 회전하는 부분이요. 정답률 54%라는게 안믿겨질정도로... 공간 효율성 때문에 스택으로 처리하면 되겠지만, 배열을 사용한 시험용 코드이기 때문에 비효율적입니다. 2018년 5월 23일 - 다듬지 않은 코드 import java.util.Scanner; public class Q15685 {static int size = 101;static boolean[][] resultMap = new boolean[size][size];static int finalGeneration;public static void main(String[] args) {Scanner sc = new Scanner(System.in)..
문제 출처 : https://www.acmicpc.net/problem/15684 음.... 맨 첨에는 DP문제로 생각해서 예제를 통해서 규칙을 찾아봤어요. 규칙이 있긴 한데, 이를 구현하기는 어렵다 생각해서 DFS 방식으로 풀었어요. 어느정도 제한 조건이 있어서, 시간 초과에는 걸리지 않았네요. 사다리 삽입 가능한 부분과 삽입한 부분, 삽입 불가능한 부분을 구분하는 것이 핵심인것 같네요. 삽입 불가능한 부분 덕분에 더 효율적으로 코드를 구현할 수 있었어요. 삽입 불가능한 부분은 사다리가 놓여져있는 공간의 좌우 공간입니다. 사다리를 추가할 때마다 좌우에 추가하지 못하게끔 세팅해야해요. 그리고 i번째의 결과가 i번인지 확인하는 작업은 사다리 개수가 짝수개일때만 해야합니다. DP방식으로 풀기위해 규칙을 찾아..
문제 출처 : https://www.acmicpc.net/problem/15683 음... 뭐랄까... 제가 짠 코드의 함정을 찾는게 좀 어려웠어요. 변수명도 너무 헷갈려서 좀 어려웠네요. 2018년 5월 19일 - 다듬지 않은 코드 (소요시간 : 1시간 50분) import java.util.ArrayList;import java.util.LinkedList;import java.util.Scanner; public class Q15683 { static ArrayList cctvList = new ArrayList();static int min = 0, y, x;public static void main(String[] args) {Scanner sc = new Scanner(System.in);y ..
2117. 홈 방범 서비스 문제 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V61LqAf8DFAWu 43프로 정답률이네요. 근데 저는 왜케 어려웠죠??????? 마름모를 한번도 안해봐서, 마름모 코딩이 어려웠어요. 2018년 4월 13일 - 다듬지 않은 코드 (소요시간 : 59분) import java.util.Scanner; public class Q2117 { static int mapSize, cost, count, max;static int[][] map;static int[] minCost = new int[21];public static void main(String[] args..
문제 출처 : https://www.acmicpc.net/workbook/view/1152 기출문제라고 하는 백준 사이트의 13개 문제를 풀어 본 후기를 작성하겠습니다. 1. 문제 유형 1번 조건일때는 A작업을, 2번 조건일 때는 B작업을 여러번 수행하는 문제가 많았어요. 따라서 대부분의 문제를 DFS로 풀 수 있었습니다. (물론 다른 방법으로 풀수 있어요.) 다른 글을 보면 DP를 공부하라고 하네요. 하지만 DP는 일주일 동안 공부를 한다고 해도 늘지 않고(글을 작성하는 시기는 시험 일주일 전) DP문제는 없었어요. 확실히 DFS가 중요한 것 같아요. 2. 난이도 해당 링크의 상단 문제들은 문제 이해도가 쉬운 반면에 구현하기가 까다로웠어요. 하단 문제들은 문제 이해도가 어렵고, 그러다 보니, 조건에 맞..
문제 출처 : https://www.acmicpc.net/problem/14502 이 문제를 처음 본 순간 막막했어요. 그런데, DFS라는 것을 알게 된 순간 쭉쭉 풀어나갔습니다. 오랜만에 플러딩 알고리즘도 사용하기도 했어요. 그런데 포문이 너무 많이 돌아간다는 문제가 있어서, 과연 이 방법이 맞나?라는 의구심을 가지고 코딩을 계속 해보니, 정답이 나오네요;;;; 최대 사이즈가 8이라서 가능한걸로 추측해요. 다차원 배열은 .clone()이 먹히지 않는것을 방금 알았어요;;;;;;;;;;;;; 여태 다차원에서 .clone()를 사용했는데;;;;;;;;;; 2018년 4월 9일 - 다듬지 않은 코드 (소요시간 48분) import java.util.Scanner; public class Q14502 { st..
문제 출처 : https://www.acmicpc.net/problem/13460 정답률이 22.63퍼인 이유를 알겠네요. 이 문제를 풀때, 구슬 도착 확인 방법을 입구 근처의 모든 블록들을 파악하는 방식으로 구현했습니다. 해당 방식은 소개된 테스트 케이스를 모두 통과하지만 예외 케이스가 있기 때문에 틀렸다고 나옵니다. 아래 케이스에서 결과가 1로 나오지만 실제 정답값은 2입니다.(입구로 가지 않았지만, 입구 근처에 있기 때문에) # # # ## R # ## . O ## # # # 따라서 현재 움직이는 방향에 따라 도착 구슬을 체크하게 구현했어요. 구슬 움직이기 구현은 12100.2048(EASY) 문제가 많은 도움 됐네요. 12100.2048(EASY) 선행학습을 안했다면 못풀거나, 소요시간이 2시간을..
문제 출처 : https://www.acmicpc.net/problem/12100 이번 문제는 테스트케이스가 적어서,문제 발견하기가 굉장히 어려웠어요.포기하려는 순간에 를 1회만 테스트로 돌리니, 해당 문제를 발견할 수 있었어요. 문제를 해결하기 전에 어느정도까지 생각했냐면비동기인 LinkedList로 구현을 해서 틀리는건가? 까지 생각했어요. 그래서 해당 코드는 어레이리스트로 구현했네요. 문제가 무엇이었냐면 moveBlock에서맵의 값을 queue에 삽입할때0의 값도 추가해서 제대로 된 덧셈 연산이 수행되지 못했습니다.따라서 0이 아닌 값만 추가하여 해당 문제를 해결했어요. 2018년 4월 8일 - 다듬지 않은 시험 코드 (소요시간 1시간 50분) import java.util.ArrayList;imp..
문제 출처 : https://www.acmicpc.net/problem/13458 이거 문제가 왜이리 쉽죠? 2018년 4월 8일 - 다듬지 않은 시험 코드 (소요시간 : 10분)import java.util.Scanner; public class Q13458 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int classNum = sc.nextInt();int[] classes = new int[classNum];for (int i = 0; i < classNum; i++) {classes[i] = sc.nextInt();}int first = sc.nextInt();int second = sc.nextInt()..