목록Develop - (34)
코드 한 줄
사용자 환경 : IntelliJ IDEA 2017.3.2 (Community Edition) Build #IC-173.4127.27, built on December 26, 2017 JRE: 1.8.0_152-release-1024-b8 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Mac OS X 10.12.6 먼저 유클리드 호제법이란? 두 정수의 최대 공약수를 구하는 방법 중 하나이며 최대 공약수를 구하는 방법은 다음과 같다. 매개변수로 a와 b를 받는다.b가 0이라면, a가 최대 공약수이다.b가 0이 아니라면, 매개변수로 b와 a%b를 받는다.반복한다. public int euclidean(int a, int b) { if(b == 0) { re..
먼저 1번 문제를 들어가면 다음과 같은 화면이 나온다. 가장 먼저, 소스를 확인해보자. 위 코드를 살펴보면 유저레벨이란 쿠키가 이 문제의 핵심이란 것을 알 수 있다. 그러나, 0부터 9의 값이 들어가면 유저레벨을 1로 초기화하며, 6보다 큰 경우에도 1로 초기화 한다. 마지막 if문을 보면, 문제를 풀기위해서 유저레벨을 5보다 크게 만들어야 한다. 5보다 크면서 6보다 크지 않아야 한다... 정답은 실수를 입력하면 된다. 크롬의 확장 프로그램은 EditThisCookie를 이용해 간단히 해결해주자. 유저레벨의 쿠키값이 1로 설정되어 있는 것을 볼 수 있다. 이를 5.5로 수정하여 체크를 하고, 새로고침을 해주면 다음과 같이 해결할 수 있다. 본인은 이미 풀었기 때문에 다른 화면이 나왔다.
사용자 환경 : macOS Sierra 10.12.6, Python 3.6.4, PyCharm 2017.3.4 build PC-173.4674.37. 인덱싱에서는 문자열 중에서 어느 위치에 있는 문자를 뽑아낼 때 사용했다. 그렇다면 파이썬 문자열 인덱싱에 대해 다룬 게시글에서 사용했던 예제인 "Life is too short, You need Python"이라는 문자열에서 단순히 한 문자만을 뽑아내는 것이 아니라 "Life" 또는 "You" 같은 단어들을 뽑아내는 방법은 없을까? 다음과 같이 슬라이싱 기법을 이용하면 간단하게 처리할 수 있다. >>> a = "Life is too short, You need Python" >>> a[0:4] 'Life' 눈치가 빠른 사람들은 이미 알겠지만, a[0:4]가..
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. String이 주어지면, 중복된 char가 없는 가장 긴 substring의 길이와 문자열을 찾아라. 예제 } Input : aabcbcbc Output : 3 // abc Input : aaaaaaa Output : 1 // a Input : abbbcedd Output : 4 // bced 이 문제는 해쉬맵을 사용하여 char와 char의 인덱스를 저장하여 풀면 된다. string의 각 char를 보면서 해쉬맵에 있다면 substring 시작점을 char의 인덱스+1 로 두면 된다. 그리고 현재 char의 인덱스와 시작점의 거리를 계속 계산하여 가장 큰 값을 리턴하면 된다. int longestSubstringLength(String s) { ..
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 정수 배열이 주어지면 0이 아닌 정수의 순서를 유지하며 모든 0을 배열의 오른쪽으로 옮겨라 예제 } Input : [0, 5, 0, 3, -1] Output : [5, 3, -1, 0, 0] Input : [3, 0, 3] Output : [3, 3, 0] 이 문제는 0을 오른쪽으로 옮기는 것보다 0이 아닌 정수를 왼쪽으로 옮긴다고 생각하면 쉽게 풀 수 있다. void solve(int[] input) { int position = 0; // 0이 아닌 정수가 들어갈 곳 for (int i = 0; i < input.length; i++) { if (input[i] != 0) { swap(input, i, position); position++; ..
사용자 환경 : macOS Sierra 10.12.6, Python 3.6.4, PyCharm 2017.3.4 build PC-173.4674.37. 인덱싱(Indexing)이란 무엇인가를 '가리킨다'는 의미이다. >>> a = "Life is too short, You need Python" 위 소스 코드에서 변수 a에 저장한 문자열의 각 문자마다 번호를 매겨 보면 다음과 같다. L i f e i s t o o s h o r t , Y o u n e e d P y t h o n 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 이제 다음 예제를 실행해 보자. >>> a = "Life is too short, You n..
사용자 환경 : macOS Sierra 10.12.6, 5.7.20 MySQL Community Server (GPL) 테이블의 이름을 바꾸는 방법은 간단하다. mysql> alter table OLD_NAME rename to NEW_NAME; OLD_NAME이 기존 테이블명이고, NEW_NAME이 변경할 테이블명이다.
사용자 환경 : macOS Sierra 10.12.6, Python 3.6.4, PyCharm 2017.3.4 build PC-173.4674.37. 먼저 파이썬이 설치되어 있는지 터미널을 열어 확인해보자. $> python --version Python 2.7.10 그럼 위와 같이 Python 2.7.10이라는 문구가 나타날 것이다. (버전이 다를 수 있고, 설치가 안되어 있을 수도 있다) 앞으로 파이썬을 배우면서 3 버전대를 사용할 것이기 때문에 파이썬 3가 설치되어 있는지 다시 한 번 터미널에서 확인해보자. $> python3 --version -bash: python3: command not found 위와 같이 -bash: python3: command not found 이라고 나오면 설치가 안..
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 정수 배열이 주어지면 두 번째로 큰 값을 출력하라 예제 } Input : [10, 5, 4, 3, -1] Output : 5 Input : [3, 3, 3] Output : Does not exist. 이 문제는 가장 큰 값을 구하는 로직과 거의 똑같다. 가장 큰 값과 두 번째 큰 값을 저장할 변수를 만들고 배열 원소들과 비교하면 된다. 중요한 엣지 케이스는 배열이 0 이나 1개의 원소를 가지고 있으면 두번째 큰 값이 존재 하지 않는 것과 [3, 3, 3] 같은 경우처럼 두 번째로 큰 값은 존재 하지 않는다. 이를 계산하기 위해 두 번째 큰 값을 저장할 변수를 Integer.MIN_VALUE로 두고 for루프가 끝난 뒤 값이 변했는지 체크하면 된다..
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 주어진 String에 모든 단어들을 거꾸로 출력하라. 예제 } Input : "abc 123 apple" Output : "cba 321 elppa" 이 문제는 긴 String 을 각 단어로 나눈 다음, 각 단어를 거꾸로 하고, 모든 단어들을 합치면 풀 수 있다. public String reverseString(String s) { String words[] = split(s); StringBuilder res = new StringBuilder(); for (String word: words) res.append(reverse(word) + " "); return res.toString().trim(); } public String[] spli..