목록코딩/SW Expert Academy (27)
삐까냥의 파도타기
1952. [모의 SW 역량테스트] 수영장 https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpFQaAQMDFAUq dfs없이 풀수 있게다 싶어서, 하드 코딩을 했는데, 결국 dfs로 풀었네요. dfs로 풀때, where == 11인 경우를 생각하지 않아서, 라이브 코딩하며 코드만 정리했네요, 하나하나씩 찍어보며, 디버깅을 했고, 문제를 풀었습니다. 여러분 자신의 생각이 맞다고 판단했지만, 답이 틀렸을 때 로그나, 현재 상황을 찍어보세요. (사실 코딩 테스트를 준비하며 로그나 출력을 계속 찍어보긴 했는데, 오늘은 귀차니즘으로 찍어보기 싫었어요.) 이렇게 코딩테스트용 디버깅 레벨이 상승했습니다. (로그 찍..
1953. 탈주범 검거 https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpLlKAQ4DFAUq DFS입니다. 가장 핵심은 이미 검사한(방문한) 길을 검사하지 않는 것입니다. 하지만 시간이라는 개념이 있기 때문에, 무조건 검사(방문)를 했다고 해서, 검사를 안하면 안됩니다. 새로운 맵을 만들어서, 해당 길(블록)을 검사한 시간을 적어두고, 현재 검사하려는 시간보다 더 짧은 시간이 블록에 기록되어있으면 검사할 필요가 없고, 현재 시간보다 더 오래된 시간이 블록에 기록되어 있으면 검사를 해야합니다. 짧은 시간일 수록 앞으로 검사할 블록이 많아지기 때문이죠. 2018년 4월 15일 - 다듬지 않은 코드 (소요..
2115. 벌꿀채취 https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V4A46AdIDFAWu 이게 55프로의 정답률. 이것저것 섞여있어서 문제를 보자마자 머리아팠어요. 2018년 4월 14일 - 다듬지 않은 코드 (소요시간 45분) import java.util.Scanner; public class Q2115 { static int mapSize, size, maxValue, maxResult;static int[][] map;public static void main(String[] args) {Scanner sc = new Scanner(System.in);int testCase = sc.nextI..
2383. 점심 식사시간 https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5-BEE6AK0DFAVl&categoryId=AV5-BEE6AK0DFAVl&categoryType=CODE 하루종일 문제만 풀다보니, 너무나 풀기 싫었던 문제입니다. 근데 생각보다 어려웠다고 해야하나...? 근데 정답률은 47퍼. 정말 정말 풀기 싫어서 코드도 원래 스타일대로 안짰어요. 제가 봐도 개판 코드 입니다. 이 문제 만큼은 다른 사이트에서 보세요;; 2018년 4월 13일 - 다듬지 않은 코드 import java.util.LinkedList;import java.util.Queue;import java.util.Scann..
2382. 미생물 격리 https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV597vbqAH0DFAVl 어떤 식으로 구현할까 생각하다가 아래와 같은 로직으로 구현했습니다. 1시간 동안 1. 맵을 만든다. 2. 군집을 다음 위치로 이동하고 이동한 위치에 +1; 3. 맵을 처음부터 끝까지 검사하면서 값이 2이상일 경우 (군집이 합쳐질 경우) 해당 위치의 군집을 병합 근데, 군집 병합 과정을 복잡하게 구현해놔서, 디버깅 좀 했어요;; 1. 병합할 군집을 모두 찾아서 미생물의 최대값을 가진 군집을 계산합니다. 2. 해당 군집에 다른 군집의 미생물 수를 더해줍니다. 3. 다른 군집은 0으로 체크하면서 죽여줍니다. (살았..
1949. 등산로 조성 문제 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq DFS로 풀었어요. 문제는 어려워 보였는데, 막상 푸니깐 넘나 쉬었쥬? 역시나 문제 이해하는게 제일 중요합니다. 문제가 어려워 보인다 -> 조건이 많다(복잡하다) -> 문제 리딩 꼼꼼하게! 2018년 4월 12일 - 다듬지 않은 코드 (소요시간 39분) package sw; import java.util.Scanner; public class Q1949 { static int mapSize, k, maxValue, result;static int[][] map;static boolean[][] ..
문제 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4suNtaXFEDFAUf 아놔................ resultCpuNum = canCpuNum; 이 한줄을 추가하지 않아, 디버깅 시간 엄청 잡아먹었네요. 다행인건, 생각한 알고리즘의 문제는 아니었네요. 50개의 테스트 케이스 중에서 49개만 맞다고 나오길래, 예외 테스트 케이스만 생각하다보니,..... 왜케 실수를 하지;;;;;;;;;;; 2018년 4월 12일 - 다듬지 않은 코드 (소요시간 1시간 13분) import java.util.Scanner; public class Q1767 { static int mapSize, cp..
문제 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWBOHEx66kIDFAWr 최장 공통 부분 수열 개념을 코딩으로 짜면 됩니다. 2018년 3월 27일 import java.util.Scanner; public class Q3304 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int testCase = sc.nextInt(); for (int i = 1; i
문제출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV-Un3G64SUDFAXr "* 한 집합에 같은 문자열이 두 번 이상 등장하지 않음이 보장된다."라고 조건이 써있습니다. 같은 문자열이 두번 이상 등장할 경우에는 중복 문자열을 제거후 검사하면 되겠네요. 2018년 3월 27일 import java.util.HashSet;import java.util.Scanner; public class Q2948 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int testCase = sc.nextInt(); for (..
문제출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIX_iFqjg4DFAVH 2018년 3월 27일 import java.util.Scanner; public class Q3975 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int testCase = sc.nextInt();for (int i = 1; i bobResult) {return "ALICE";} else if (alicerResult < bobResult) {return "BOB";} else {return "DRAW";}}}