목록Develop - (38)
코드 한 줄
사용자 환경 : 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..
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 간격(interval)으로 이루어진 배열이 주어지면, 겹치는 간격 원소들을 합친 새로운 배열을 만들어라. 간격은 시작과 끝으로 이루어져 있으며, 시작은 끝보다 작거나 같다. 예제 } Input : {{2, 4}, {1, 5}, {7, 9}} Output : {{1, 5}, {7, 9}} Input : {{3, 6}, {1, 3}, {2, 4}} Output : {{1, 6}} 문제의 어려운 점은 간격 원소들이 무작위로 순서가 돼있는 것이다. 주로 이런 경우엔 자료구조를 써서 무작위 원소들을 쉽게 정리하거나, 원소들을 정렬하면 된다. 이 문제에선 간격 원소들을 정렬해보겠다. 간격 원소가 {start, end}로 나누어 있다고 가정하고, start로 ..
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 정수 배열과 타겟값이 주어지면, 합이 타겟값이 되는 두 원소의 인덱스를 찾아라. 예제 } Input : [2, 5, 6, 1, 10], 타겟값 : 8 Output : [0, 2] // 배열[0] + 배열[2] = 8 이 문제는 해쉬맵을 사용하여 원소 값과 원소 인덱스를 저장하면 쉽게 풀 수 있다. 각 배열의 원소마다 (타겟 - 원소 값)이 해쉬맵에 있는지 확인하면 된다. int[] solution(int[] input, int target) { Map map = new HashMap(); for(int i=0; i
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 먼저, 팰린드롬(palinedrome)이란 앞에서부터 읽으나 뒤에서부터 읽으나 똑같은 단어를 말한다. 정수 n에 대하여 팰린드롬인지 알아내는 방법을 구현하면 되고, 정수를 문자열로 변경해서는 안된다. 예제} Input : 12345 Output : False Input : -101 Output : False Input : 11111 Output : True Input : 12421 Output : True 일단 엣지 케이스를 살펴보자. 정수가 마이너스면 팰린드롬이 될 수 없다. 그리고 0이 아닌 정수가 0으로 끝난다면 이 경우 역시 팰린드롬이 될 수 없다. 주어진 숫자를 전반부와 후반부로 나눈다. 예를 들어 1233210이 주어지면, 123이 전반..
사용자 환경 : macOS Sierra 10.12.6, 5.7.20 MySQL Community Server (GPL) 안드로이드로 MySQL에 관한 개발을 하던 도중 다음과 같은 에러가 발생했다. mysqli_connect(): (HY000/2002): No such file or directory in (중략) 열심히 구글링을 했었고, 여러 해결 방법이 나와 있었다. 기본적으로 서버가 안켜져있는 경우에 발생한다고 한다. 하지만, 서버는 너무나 잘 켜져있었다. 맥북을 한 번 밀고 다시 개발환경 세팅한 거라 환경 설정이 다 안되었다고 판단하고 예전 기억을 떠올렸다. 분명 소켓에 관한 설정을 했던 것 같아 다시 구글링을 해서 해결 했다. 해결 방법은 다음과 같다. 우선 터미널을 열고 폴더 하나를 만든다. ..
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 정수 n이 주어지면, n개의 여는 괄호 "("와 n개의 닫는 괄호 ")"로 만들 수 있는 괄호 조합을 모두 구하라. 예제} Input : 1 Output : ["()"] Input : 2 Output : ["(())", "()()"] Input : 3 Output : ["((()))", "(())()", "()(())", "()()()"] 주로 조합을 구하거나 답의 양이 많을 경우는 재귀함수를 사용하면 된다. empty string 부터 시작하여 "("를 더하고 재귀함수를 부르고, ")"를 더하고 재귀함수를 부르면 된다. 여기서 중요한 건, 현재 몇 개의 여는 괄호를 사용 하였는지와 몇 개의 닫는 괄호를 사용 하였는지 알아야 한다. 괄호 조합을 왼..
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 우선 피보나치란, 0과 1로 시작하며 다음 피보나치 수는 바로 앞의 두 피보나치 수의 합이 된다. 이때, 주어지는 정수 n보다 작은 피보나치 수 중 모든 짝수의 합을 구하라. 예제} Input : n = 12 Output : 10 // 0, 1, 2, 3, 5, 8 중 짝수인 2 + 8 = 10 이 문제는 n보다 클 때까지 피보나치의 수를 구하며 짝수인 피보나치 수를 다 더해주면 된다. int evenFibSum(int N) { int sum = 0; int x = 1; int y = 2; while (x