목록문자열 (4)
코드 한 줄
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 길이가 같은 두 문자열 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..
사용자 환경 : 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) { ..
사용자 환경 : 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..