목록Develop - (34)
코드 한 줄
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 간격(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
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 정수 배열(int array)가 주어지면 가장 큰 이어지는 원소들의 합을 구하시오. 단, 시간복잡도는 O(n). 예제} Input : [-1, 3, -1, 5] Output : 7 // 3 + (-1) + 5 Input : [-5, -3, -1] Output : -1 // -1 Input : [2, 4, -2, -3, 8] Output : 9 // 2 + 4 + (-2) + (-3) + 8 이 문제는 두 개의 정수 변수로 현재의 합(currentSum)과 전체의 제일 큰 합(maxSum)을 저장해야 합니다. 각 원소마다 (currentSum + 원소) 값을 원소 값이랑 비교하고, 더 큰 값이 currentSum이 됩니다. maxSum은 curren..
사용자 환경 : macOS Sierra 10.12.6 PHP로 MySQL에 접근하는 예제를 여러 개 봤었다면 mysql과 mysqli를 봤었을 것이다. 본인도 처음 봤을 때 둘의 차이점에 대해 궁금증을 가지게 되었는데 생각보다 단순했다. mysqli 키워드는 php5 버전 이후부터 지원되며 기존의 mysql 키워드보다 보안, 속도면에서 향상되었다. 또 하나, 작은 차이점은 mysql_query()와 mysqli_query()의 파라미터 값 순서가 다르다는 것이다. 1.mysql 2. mysqli 이와 같은 차이가 있다. mysqli이 보안과 속도가 더 좋다고 하니 이를 사용하는 것이 좋겠다.
사용자 환경 : macOS Sierra 10.12.6, 5.7.20 MySQL Community Server (GPL) MySQL을 사용하다보면 한글을 입력하고 싶을 때가 있으나 기본적인 설정으로는 한글이 깨져 보인다. 이 문제를 해결해보고자 하며 여기에는 여러 방법이 있으나 그 중 일부만을 설명한다. 1. 데이터베이스 생성 시 설정 mysql> create database DB_NAME default character set utf8 collate utf8_general_ci; DB_NAME은 데이터베이스명을 뜻한다. 2. 기존 생성되어 있는 데이터베이스의 설정 mysql> alter database DB_NAME default character set utf8 collate utf8_general_c..
사용자 환경 : macOS Sierra 10.12.6, Android Studio 3.0.1 { Build #AI-171.4443003, built on November 10, 2017 JRE: 1.8.0_152-release-915-b08 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o } 이번에는 커스텀 리스트뷰에 대해 알아보고자 한다. 먼저 이 앱의 최종 화면은 다음과 같다. 각 아이템을 클릭 시 맨 우측에 좋아요 숫자가 올라가는 기능도 구현할 예정이다. 1. 프로젝트를 생성한다. 2. 해당 파일을 받고 앞축을 푼 후 android 폴더에 있는 다음 폴더들을 전부 복사한다. 2-1. 다시 안드로이드 스튜디오로 돌아와 프로젝트 뷰로 변경 후 다음 경..