목록코딩 (163)
삐까냥의 파도타기
문제 출처 : http://tech.kakao.com/2017/11/14/kakao-blind-recruitment-round-3/ 테스트 케이스 개수가 너무 적어서, 정답인지 모르겠네요. (테스트 케이스가 많을 경우 정답이 아닌 경우가 종종 있어요) 그냥 LZW 압축 설명이 이해하기 어렵네요. (시험장에서 이해하기 어려운 문제 보면 멘붕이죠.) 그냥 제시된 예제를 보면서 이해하는게 더 쉬웠습니다. 해설을 보면 LZW 압축방식(수도코드)을 그대로 구현하면 된다고하네요. 저는 설명 안보고, 예제 보고 이해 한 후 코딩했어요. 2018년 3월 6일 public class kakao_3_2 { static ArrayList defaultDictionary = new ArrayList();public stati..
문제 출처 : http://tech.kakao.com/2017/11/14/kakao-blind-recruitment-round-3/ 카카오 3차에 대한 안좋은 추억이 있어서 쳐다보지도 않았는데, 트라우마에 마주하려 합니다. (그날은 유난히도 재수가 없던 날이었습니다.) 어쨌든, 정답률이 91%라고 했나요? 방금까지만 해도 해결 방법이 생각나지 않아서 어렵다고 생각했어요. 너무 어렵게만 생각해서 그랬나봐요. (실제로 시험장에서 어렵게 풀었어요.) 근데, 그냥 모든 대답을 구한 다음에 원하는 대답만 뽑아내면 되는 간단한 문제였네요. (코드를 더 다듬고 싶은데, 컴터가 막 버버벅버벅 거리네요.) 2018년 3월 5일 public class kakao3_1 {public static void main(Strin..
안녕하세요. Android Studio(3.0.1)를 사용하면서 AVD 혹은 스마트폰에 App을 실행할 때 반응하지 않는 문제를 겪었습니다. 검색을 해도 잘 나오지 않기 때문에 오랜만에 글을 올려 봅니다. 저는 아래와 같은 에러를 경험했고, 이에 대한 해결 방법을 알려드리겠습니다. Unable to locate adbjava.lang.IllegalArgumentException: Unable to locate adb adb를 찾을 수 없다는 의미죠. 원인 : Avast가 adb를 검역소로 이동했다. 해결 방법 : Avast의 겸역소에서 복원하고, 검사 제외 목록에 추가한다. 빨간 네모안이 adb.exe입니다. 이를 선택해서 "복원"을 해주세요. (adb가 저장된 주소를 저장하세요. 제외 목록에 추가해야 ..
안녕하세요. Android 개발을 하면서 아주아주아주 중요한 소스 코드 난독화 방법을 알려드립니다. 우선 소스 코드 난독화 하는 이유는 말하겠습니다. 기껏 힘들게 만든 APK 파일을 이렇쿵 저렇쿵 하면 소스 코드를 얻을 수 있는데요, 이를 방지하기 위해서 ProGuard를 통해 소스 난독화를 하는 것입니다. Build.gradle(app)에 들어가주세요. BuildTypes의 minifyEnabled를 true로 바꿔주면 됩니다. 아주아주아주아주아주아주 간단하죠. 그런데 말입니다. 아랫글도 꼭 읽으세요. Application을 Google Play에 출시를 하게 되면 오류 리포트를 받을 수 있습니다. 문제는 소스 난독화를 활성화한 Application 같은 경우 오류 리포트에 나오는 소스 부분 또한 난독..
문제 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LsaaqDzYDFAXc&categoryId=AV5LsaaqDzYDFAXc&categoryType=CODE 이 문제가 D3(어려움)인데, 정답률이 왜 40%인지 모르겠네요. (다른 D3문제의 정답률 40% 이하인 문제보다 훨씬 쉬운 느낌이에요.) 고객은 붕어빵 하나씩만 구매할 수 있네요. package sw; import java.util.Collections;import java.util.LinkedList;import java.util.Scanner; public class Q1860 { static int N, M, K;static Li..
문제 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15Khn6AN0CFAYD&categoryId=AV15Khn6AN0CFAYD&categoryType=CODE DFS 방식으로 구현했고, check 배열을 사용하여 같은 횟수이면서 같은 숫자를 탐색했는지 체크했습니다. 따라서 불필요한 탐색을 수행하지 않게되죠. 문제를 보니 DFS or BFS를 사용해야 할 것 같아, 백준사이트에서 DFS or BFS 문제를 조금 풀고왔는데 도움되네요. package sw; import java.util.Scanner; public class Q1244 { static int result, maxCount;stat..
문제 출처 : https://www.acmicpc.net/problem/11403 DFS 입니다. dsf에 익숙치 않아 아직은 어버버 거리네요. import java.util.Scanner; public class Q11403 { static int[][] a;static int num;public static void main(String[] args) {Scanner sc = new Scanner(System.in);num = sc.nextInt();a = new int[num][num];for ( int i = 0; i < num; i++ ) {for ( int j = 0; j < num; j++ ) {a[i][j] = sc.nextInt();}}for ( int y = 0; y < num; y++..
문제 출처 : https://www.acmicpc.net/problem/1697 BFS입니다. DFS로는 답이 안나오네요. import java.util.LinkedList;import java.util.Queue;import java.util.Scanner; public class Q1697_2 { public static void main(String[] args) {Scanner sc = new Scanner(System.in);int start = sc.nextInt();int goal = sc.nextInt();if ( start >= goal ) {//도착 장소가 더 작으면 빼기밖에 못하니 바로 계산System.out.println(start-goal);return;}int max = goal..
문제 출처 : https://www.acmicpc.net/problem/1260 기본 깊이우선 탐색 구현과 너비우선 탐색 구현입니다. 처음 구현하면서 학습한 블로그 주소 남깁니다. -> http://mygumi.tistory.com/102 import java.util.LinkedList;import java.util.Queue;import java.util.Scanner; public class Q1260 { public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt();int M = sc.nextInt();int V = sc.nextInt();int[][] A = new int[N][N];f..
문제 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV2b9AkKACkBBASw&categoryId=AV2b9AkKACkBBASw&categoryType=CODE 음... 오버플로우 대응 문제 였습니다.시간을 줄이기 위해서는 몇가지 생각을 하면 됩니다.문제에 나오는 식을 한번 보죠.A * | R - C | + B * { N - ( R * C ) }식을 두개로 나누어서 생각해볼게요.아래 표처럼 두개로 나누면 두개의 식 모두 양수밖에 나오지 못하는걸 알 수 있습니다.따라서 두개의 식의 최소값을 구해야 합니다. A * | R - C | >= 0 (첫번째 식) B * { N - ( R * C ) } >=..