반응형

* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다.






문자열 배열(string array)이 주어지면, 제일 긴 공통된 접두사(prefix)의 길이를 찾아라





예제 } 


Input : ["apple", "apps", "ape"]


Output : 2 // "ap"


Input : ["hawaii", "happy"]


Output : 2 // "ha"


Input : ["dog", "dogs", "doge"]


Output : 3 // "dog"











반응형
반응형

* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다.






정수 배열(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











반응형
반응형

사용자 환경 : 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





콜라츠 추측이란?



어떤 수 n에 대하여 n이 홀수일 경우, 3을 곱하고 1을 더한다.



n이 짝수일 경우, 2로 나눈다.



n이 1이 될 때까지 반복하며 그 과정을 출력하는 프로그램을 만들어보자.











반응형
반응형

* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다.






정수로된 배열이 주어지면, 각 원소가 자기 자신을 제외한 나머지 원소들의 곱셈이 되게하라.



단, 나누기 사용 금지, 시간 복잡도 0(n)





예제 }



Input : [1, 2, 3, 4, 5]


Output : [120, 60, 40, 30, 24]





반응형
반응형

사용자 환경 : 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





동전 거스름돈 알고리즘이란?



만약 1300원의 거스름돈을 손님에게 건네줘야 한다면 어느 조합으로 건네줘야 가장 적은 수의 동전을 건네주는가를 구하는 문제이다.



1300원의 경우, 500원짜리 2개, 100원짜리 3개로 총 5개가 가장 적은 수를 건네는 조합이다.











반응형
반응형

* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다.






길이가 같은 두 문자열 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












반응형
반응형

사용자 환경 : macOS Sierra 10.12.6Python 3.6.4PyCharm 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]가 뜻하는 것은 문자열 a에서 0부터 4까지의 문자 즉, 첫 번째부터 다섯 번째까지 뽑아낸다.



여기서 다음과 같은 의문이 생길 것이다. a[0]은 'L'이고, a[3]은 'e'니까 a[0:3]으로도 'Life'를 뽑아낼 수 있지 않을까?



>>> a[0:3]
'Lif'



이렇게 되는 이유는 간단하다. a[시작 번호:끝 번호]를 지정하면 끝 번호에 해당하는 인덱스는 포함되지 않기 때문이다.



시작 번호가 항상 0일 필요는 없고, 끝 번호를 생략하면 시작 번호부터 문자열의 끝까지, 시작 번호를 생략하면 문자열의 처음부터 끝 번호까지 뽑아낸다.



의미는 없겠지만 시작 번호와 끝 번호를 모두 생략하면 문자열 전체를 뽑아내고, 인덱싱과 마찬가지로 마이너스 기호를 사용할 수도 있다.



간단한 예제로 다음과 같은 날짜를 나타내는 문자열에서 년, 월, 일을 뽑아내보자.



>>> a = "20180326"
>>> year = a[:4]
>>> month = a[4:6]
>>> day = a[6:8]
>>> year
'2018'
>>> month
'03'
>>> day
'26'






반응형
반응형

* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다.






String이 주어지면, 중복된 char가 없는 가장 긴 substring의 길이와 문자열을 찾아라.





예제 }


Input : aabcbcbc


Output : 3 // abc


Input : aaaaaaa


Output : 1 // a


Input : abbbcedd


Output : 4 // bced











반응형
반응형

사용자 환경 : macOS Sierra 10.12.6Python 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 이라고 나오면 설치가 안되어 있는 것이다.



이제 https://www.python.org/downloads/mac-osx/ 에 접속하여 파이썬 3를 설치해보자.





빨간색으로 밑줄 친 부분을 클릭해 페이지를 이동한 후,





역시 빨간색으로 밑줄 친 부분을 클릭해 파일을 다운받고 설치한다.



설치는 어려운 부분이 없으니 생략하도록 하고 설치 후 터미널을 열어 제대로 설치되었는지 확인해보자.



$> python3 --version
Python 3.6.4


위와 같이 잘 나온다면 성공적으로 설치한 것이다.






반응형
반응형

* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다.






정수 배열과 타겟값이 주어지면, 합이 타겟값이 되는 두 원소의 인덱스를 찾아라.





예제 }



Input : [2, 5, 6, 1, 10], 타겟값 : 8


Output : [0, 2] // 배열[0] + 배열[2] = 8










반응형

+ Recent posts