목록coding (4)
코드 한 줄
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 문자열 배열(string array)이 주어지면, 제일 긴 공통된 접두사(prefix)의 길이를 찾아라 예제 } Input : ["apple", "apps", "ape"] Output : 2 // "ap" Input : ["hawaii", "happy"] Output : 2 // "ha" Input : ["dog", "dogs", "doge"] Output : 3 // "dog" 이 문제는 가장 긴 공통된 접두사가 첫 단어라고 가정하고, 각 문자마다 모든 단어에 비교한다. 비교하는 방식은 단어의 같은 위치에 문자가 있는지 확인한다. 만약 문자가 다르거나, 문자가 없으면 현재의 문자 위치까지만 공통된 접두사이다. int longestPrefixLen..
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 정수 배열(int array)과 정수 N이 주어지면, N번째로 큰 배열의 원소를 찾아라. 예제 } Input : [-1, 3, -1, 5, 4], 2 Output : 4 Input : [2, 4, -2, -3, 8], 1 Output : 8 Input : [-5, -3, 1], 3 Output : -5 이 문제는 “Quick Select”의 알고리즘을 사용하는 대표적인 문제이다. Quick select는 퀵 정렬(quick sort)를 이용하는 알고리즘이다. 퀵 정렬의 pivot을 정하고 1차 정렬을 하면 pivot의 원소 위치는 최종 정렬된 배열의 위치가 된다. 이것을 이용하여 모든 배열을 정렬 하지 않고, pivot의 값을 비교하여, 찾는 값에..
사용자 환경 : IntelliJ IDEA 2017.3.2 (Community Edition)Build #IC-173.4127.27, built on December 26, 2017JRE: 1.8.0_152-release-1024-b8 x86_64JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.oMac OS X 10.12.6 콜라츠 추측이란? 어떤 수 n에 대하여 n이 홀수일 경우, 3을 곱하고 1을 더한다. n이 짝수일 경우, 2로 나눈다. n이 1이 될 때까지 반복하며 그 과정을 출력하는 프로그램을 만들어보자. 먼저, 본인은 다음과 같은 변수를 선언했다. private int N; private boolean tf; private int cnt; 입력받을 N과, wh..
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 길이가 같은 두 문자열 A와 B가 주어지면, 서로 1:1 암호화가 가능한지 찾아라. 예제 } Input : "EGG", "FOO" Output : True // E->F, G->O Input : "ABBCD", "APPLE" Output : True // B->P, C->L, D->E Input : "AAB", "FOO" Output : False 이 문제는 해쉬맵(hashmap)을 써서 A의 문자를 B의 문자 매칭을 저장하면 된다. A의 문자가 해쉬맵의 키로 있다면, B의 문자와 해쉬맵의 있는 값과 비교한다. A의 문자가 해쉬맵의 키로 없다면, B의 문자가 해쉬맵의 값으로 있는지 확인하고 없으면 해쉬맵에 더해준다. bool solve(String..