전화번호 목록 ( JAVA, C++, Python3)

 

우선 C#언어를 선택할 수 없어 조금 당황스럽긴 했지만... C++로 풀어보려고 했습니다.

 

 

C#에서 익숙하게 활용했던 것들과 STL함수의 이름과 사용법이 조금 달라서 고생을 한 부분들이 있어 해당 내용도 간단히 같이 정리를 해 둡니다.

 

워낙 기본적인 내용이지만, C#만 하다가 C++를 다시 작업하니 기본부터 찾아봐야 하는 수고가 있었습니다.

 

 

 

(이 문제의 풀이에 사용한 함수만 정리합니다.)

 

 

 

 


 

 

 

1. String class의 함수

 

 

https://docs.microsoft.com/ko-kr/cpp/standard-library/basic-string-class?view=msvc-160

 

basic_string 클래스

표준 c + + 문자열 클래스에 대 한 API 참조 `basic_string` 입니다.

docs.microsoft.com

아래의 정보의 출처는 위의 기본 문자열 클래스 관련 문서입니다.

 

 

 

 

1) compare() 함수

 

 

문자열을 지정된 문자열과 비교하여 두 문자열이 같은지 아니면 한 문자열이 다른 문자열보다 사전순으로 더 작은지를 확인합니다.\

 

매개 변수

str
피연산자 문자열과 비교할 문자열입니다.

position_1
비교가 시작될 피연산자 문자열의 인덱스입니다.

number_1
비교할 피연산자 문자열의 최대 문자 수입니다.

number_2
비교할 매개 변수 문자열의 최대 문자 수입니다.

offset
비교가 시작될 매개 변수 문자열의 인덱스입니다.

count
비교할 매개 변수 문자열의 최대 문자 수입니다.

ptr
피연산자 문자열과 비교할 C 문자열입니다.

반환 값

피연산자 문자열이 매개 변수 문자열보다 작은 경우 음수 값, 두 문자열이 같은 경우 0, 피연산자 문자열이 매개 변수 문자열보다 큰 경우 양수 값입니다.

설명

compare멤버 함수는 사용됨에 따라 매개 변수 및 피연산자 문자열의 전체 또는 일부를 비교합니다.

비교는 대/소문자를 구분합니다.

 

 

 

 

 

2) size() 함수

 

문자열의 현재 요소 수를 반환합니다.

 

반환 값

문자열의 길이입니다.

 

 

 

3) substr() 함수

 

지정된 위치부터 시작하여 문자열의 하위 문자열을 최대 특정 문자 수만큼 복사합니다.

 

매개 변수

offset
문자열의 복사본이 만들어지는 위치에 요소를 배치하는 인덱스이며 기본값은 0입니다.

count
있는 경우 복사될 문자 수입니다.

반환 값

첫 번째 인수에 의해 지정된 위치에서 시작하는 문자열 피연산자 요소의 복사본인 부분 문자열 개체입니다.

 

 

 

 


 

 

2. Vector class의 개념

 

Vector를 사용할 일이 거의 없었고, 검색을 하며 열심히 공부를 하여, c#의 list와 유사한 기능을 하는 클래스로 확인하였습니다.

 

 

https://docs.microsoft.com/ko-kr/cpp/standard-library/vector-class?view=msvc-160

 

vector 클래스

클래스 벡터의 Microsoft c + + 표준 라이브러리 구현에 대 한 참조입니다.

docs.microsoft.com

 

설명

벡터를 사용하면 시퀀스 끝에서 상수 시간 삽입 및 삭제할 수 있습니다. 벡터 중간에 요소를 삽입하거나 삭제하려면 선형 시간이 필요합니다. Deque 클래스 컨테이너는 시퀀스의 시작과 끝에서 삽입 하 고 삭제하는 속도보다 빠릅니다. 목록 클래스 컨테이너는 시퀀스 내의 모든 위치에서 삽입 하 고 삭제하는 속도보다 빠릅니다.
멤버 함수가 벡터 개체에 포함되는 시퀀스를 현재 스토리지 용량보다 더 크게 늘려야 할 때 벡터 다시 할당이 수행됩니다. 다른 삽입 및 지우기에서 시퀀스 내의 여러 스토리지 주소가 변경될 수 있습니다. 이러한 모든 경우 시퀀스의 변경되는 부분을 가리키는 반복기 또는 참조가 올바르지 않은 상태가 됩니다. 재할당이 수행되지 않으면 삽입/삭제 지점 앞의 반복기와 참조만 올바른 상태로 유지됩니다.
Vector <bool> 클래스는 형식의 요소에 대 한 클래스 템플릿 벡터의 전체 특수화입니다 bool. 특수화에 사용되는 기본 형식에 대 한 할당자를 포함합니다.
Vector <bool> reference 클래스는 개체가 vector 개체 내의 요소 (단일 비트)에 대 한 참조를 제공할 수 있는 중첩 클래스입니다 <bool>.

<출처 : MSDN>

 

 

즉, 간단히 정리를 해 보면

  • vector라는 컨테이너는 자동으로 메모리가 할당되는 배열.
    자동으로 메모리를 할당해주고 알아서 끝에 들어가 주고 알아서 삭제도 해주는 컨테이너입니다.

 

 

3. 문제 풀이

문제풀이를 위해 생각한 핵심 아이디어는 아래와 같습니다.

 

문제를 풀이할 때 먼저 부분 문자열인지를 확인해야 하므로 해당 내용을 검사하는 조건문이 필요했습니다.

 

그리고 효율적으로 이중 반복문을 수행하기 위해 아이디어를 낸 것이 size가 x인 백터에서 각각 비교를 한다면, 크기의 제곱만큼 수행을 하겠지만, 그러한 작업을 피하면서 절반만 수행을 할 수 있도록 이미 비교한 경우는 비교하지 않을 수 있도록 하는 내용을 처리해야 했습니다.

 

 

 

 

 

(이 부분은 좀 더 그림을 그리면 쉽게 설명을 할 수 있을 것 같은데 바로 그림이 그려지지는 않았습니다...)

 

 

그리고 이중 반복문을 통해 반복적으로 비교를 할 때 더 짧은 문자열이 당연히 더 긴 문자열의 접두사가 될 것이므로 길이가 더 짧은 쪽이 더 긴 쪽의 부분 문자열(접두사)이 되는지만을 비교하였습니다.

 

 

 

처음 코딩을 마친 결과입니다.

왠지 모르게 Ture가 나와야 하는 경우에도 False를 반환하였습니다.

 

 

그 이유는 제가 아래와 같이 compare함수의 결과를 잘 못 알고 사용했기 때문입니다.

 

 

 

 

 

compare 함수를 활용하여 두 문자열이 같을 경우, 반환하는 값이 0이 되므로, 그 값이 0인지를 확인하는 조건을 추가로 넣어주었습니다.

그렇지 않은 경우에는 같을 때 True가 되는 것이 아니라, 원래의 문자열이 인자로 들어간 문자열보다 사전적으로 큰 경우에 True를 반환하게 됩니다.

 

 

 

해당 내용을 수정하고 채점한 결과 오늘은 다행히도 통과했습니다.

 

 

오늘의 주제 시 미즈노 루리코 시인의 <등대>입니다.

 

 

 

 

 

 

 

 

 

 

 


등대

                               미즈노 루리코

한밤중 하늘에
눈이 나립니다
 
새는  또 한마리
닮은 꼴 새를 향한
한결같은 기억에 의지해
바람의 테두리 밖으로 날아가버리고
 
어류는 꽁꽁 얼어붙은 채
청각의 외부를 회유합니다
 
      <달팽이 나선은 어둡게 닫혀>
 
나는 내면에 쓰러진 초에
불을 밝힐 수 없습니다
 
그리하여
 
남겨진 이 섬의 위치는
지금  어둠에 침식되어갑니다

 

 

 

 

 

 

 

 

뭔가 시를 쓰면서 자꾸 마음을 반영한다는 생각이 듭니다.

또 다른 표현으로는 그냥 갖다 붙이고, 의미부여를 하고 있는 걸 수도 있겠지요.

 

하지만 자가격리 만 7일을 해 냈는데 7일간 정말 TV 보고 누워있던 시간이 90% 이상인 듯합니다.

아무 기운도 목적도 없이...

등대가 없이 잠겨가는 남겨진 섬처럼...

 


2020/11/20 - [개발 외의 이야기/시 필사] - [1일1시] Day 412 < 어두운 밤에 by 천상병>

 

[1일1시] Day 412 < 어두운 밤에 by 천상병>

오늘의 주제 시 천상병 시인의 <어두운 밤에>입니다. 어두운 밤에                                천상병 수만년 전부터 전해 내려온 하늘에, 하나, 둘, 셋, 별이..

newstory-of-dev.tistory.com

 

오늘의 주제 시 천상병 시인의 <어두운 밤에>입니다.

 

 

 


어두운 밤에

                               천상병

수만년 전부터
전해 내려온 하늘에,
하나, 둘, 셋, 별이 흐른다.
 
할아버지도
아이도
다 지나갔으나
한 청년이 있어, 시를 쓰다가 잠든 밤에...

 

 

 

 

 

시를 쓰다 잠들어 본 적은 없지만...  

다른 사람들이 잠 든 시간에... 혹은 잠 들었어야 하는 시간에 써 본적은 참 많네요.

 


<이전 포스팅>

2020/11/20 - [개발 외의 이야기/시 필사] - [1일1시] Day 411 < 잠시 제자리 by 최유수>

 

[1일1시] Day 411 < 잠시 제자리 by 최유수>

오늘의 주제 시 최유수 시인의 <잠시 제자리>입니다. 잠시 제자리                                최유수 쓸데없는 욕심을 부리지 않기로 했다. 어떤 일이든 그 ..

newstory-of-dev.tistory.com

 

 

<다음 포스팅>

2020/11/20 - [개발 외의 이야기/시 필사] - [1일1시] Day 413 < 등대 by 미즈노 루리코>

 

[1일1시] Day 413 < 등대 by 미즈노 루리코>

오늘의 주제 시 미즈노 루리코 시인의 <등대>입니다. 등대                                미즈노 루리코 한밤중 하늘에 눈이 나립니다 새는  또 한마리 닮은 꼴 ..

newstory-of-dev.tistory.com

 

 

 

 

 

오늘의 주제 시 최유수 시인의 <잠시 제자리>입니다.

 

 

 


잠시 제자리 

                               최유수

쓸데없는 욕심을 부리지 않기로 했다. 
어떤 일이든 그 일에 대한 만족감의 최대치는 
내가 정할 수 있는 것이므로 
애초에 연연할 필요도 없었다. 
 
만약 지금 행복하지 않다면  
욕심이 과했던 것은 아닌지
스스로에게 물어봐야 한다. 
 
누가 뭐라고해도 나의 삶을 살아야하기 때문이다. 
이를 위해서라면 제자리를 걸어도 좋다. 

 

 

 

 

 

 

 

쓸데 없는 욕심이었을지....

행복하고 싶은 것이...

 

나의 삶을 못찾아서 제자리인걸까 하는 고민을 해 보게 됩니다.

 

 


<이전 포스팅>

2020/11/02 - [개발 외의 이야기/시 필사] - [1일1시] Day 410 < 기억의 다리 by 나희덕>

 

[1일1시] Day 410 < 기억의 다리 by 나희덕>

오늘의 주제 시 나희덕 시인의 <기억의 다리>입니다. 기억의 자리                                              나희덕 어렵게 멀어져 간 것들이 다시..

newstory-of-dev.tistory.com

 

 

<다음 포스팅>

2020/11/04 - [개발 외의 이야기/시 필사] - [1일1시] Day 412 < 어두운 밤에 by 천상병>

 

[1일1시] Day 412 < 어두운 밤에 by 천상병>

오늘의 주제 시 천상병 시인의 <어두운 밤에>입니다. 어두운 밤에                                천상병 수만년 전부터 전해 내려온 하늘에, 하나, 둘, 셋, 별이..

newstory-of-dev.tistory.com

 

오늘의 주제 시 나희덕 시인의 <기억의 다리>입니다.

 

 


기억의 자리

                                             나희덕 

어렵게 멀어져 간 것들이
다시 돌아올까봐
나는 등을 돌리고 걷는다
추억의 속도보다는 빨리 걸어야 한다
이제 보여줄 수 있는 것은
뒷모습 뿐, 눈부신 것도
등에 쏟아지는 햇살 뿐일 것이니
도망치는 동안에만 아름다울 수 있는
길의 어귀마다 여름 꽃들이 피어난다
키를 달리하여
수많은 내 몸들이 피었다진다
시든 꽃잎이 그만
피어나는 꽃잎 위로 떨어져 내린다
휘청거리지 않으려고 걷는다 빨리
기억의 자리마다
발이 멈추어선 줄도 모르고
예전의 그 자리로 돌아온 줄도 모르고

 

 

 

 

 

 

무언가에 등을 돌리고 걸어보았습니다.

아쉽고 좋은 것들, 함께하고 싶은 것들, 좋았던 기억이 있는 장소를 떠날 때에는 힘들죠.

무언가를 두고 떠날 때 그 자리가 기억의 자리이지 않을까 하는 생각이 들었습니다.

 

슬로바키아 질리나도 언제까지나 기억의 자리가 될 것 같습니다.

 

 

오늘의 주제 시 나태주 시인의 <아름다운 사람>입니다.


아름다운 사람

                                             나태주

아름다운 사람
눈을 둘 곳이 없다
바라볼 수도 없고
그렇다고 아니 바라볼 수도 없고
그저 눈이
부시기만 한 사람.

 

 

 

 

 

 

 

 

 

그런 사람... 

 


<이전 시 필사>

2020/10/31 - [개발 외의 이야기/시 필사] - [1일1시] Day 408 < 가을 엽서 by 안도현>

 

[1일1시] Day 408 < 가을 엽서 by 안도현>

오늘의 주제 시 안도현 시인의 <가을 엽서>입니다. 가을엽서                                       안도현 한 잎 두 잎 나뭇잎이 낮은 곳으로 자꾸 내려앉..

newstory-of-dev.tistory.com

<다음 시 필사>

2020/11/02 - [개발 외의 이야기/시 필사] - [1일1시] Day 410 < 기억의 다리 by 나희덕>

 

[1일1시] Day 410 < 기억의 다리 by 나희덕>

오늘의 주제 시 나희덕 시인의 <기억의 다리>입니다. 기억의 자리                                              나희덕 어렵게 멀어져 간 것들이 다시..

newstory-of-dev.tistory.com

 

오늘의 주제 시 안도현 시인의 <가을 엽서>입니다.

 

 

 


가을엽서

                                      안도현

한 잎 두 잎 나뭇잎이
낮은 곳으로
자꾸 내려앉습니다
세상에 나누어줄 것이 많다는 듯이

나도 그대에게 무엇을 좀 나눠주고 싶습니다

내가 가진 게 너무 없다 할지라도
그대여
가을 저녁 한때
낙엽이 지거든 물어보십시오
사랑은 왜
낮은 곳에 있는지를

 

 

 

 

낙엽이 가을 엽서 같다는 생각이 들었습니다.

자꾸 낮은 곳으로 내려앉는 그 낙엽들이 많은 숙소에서 창밖을 하염없이 바라보며...

소중한 연락을 기다리며...

 

낮은 곳에서 더 낮은 곳으로.. 향하고만 있다는 느낌이 들었습니다.

 

 


<이전 시 필사>

2020/10/30 - [개발 외의 이야기/시 필사] - [1일1시] Day 407 < 의문 by 이병률>

 

[1일1시] Day 407 < 의문 by 이병률>

오늘의 주제 시 이병률 시인의 <의문>입니다. 의문                                           이병률 유리창을 없애려면 어디에 쳐야 하나 무엇에 부딪혀..

newstory-of-dev.tistory.com

 

 

<다음 시 필사>

2020/11/01 - [개발 외의 이야기/시 필사] - [1일1시] Day 409 < 아름다운 사람 by 나태주>

.

오늘의 주제 시 이병률 시인의 <의문>입니다.

 

 

 


의문

                                          이병률
 
유리창을 없애려면 어디에 쳐야 하나
무엇에 부딪혀서 창을 깰까
기다리고 기다리다 당신이 저멀리 나타나면 
손 흔들어야 하나
등 돌려야 하나
 
 
배웅과 마중 가운데 무엇을 할까
당신이 오는 일이라면
당신이 떠나는 일이라면
이 삶을 열고 닫는 일
무엇이 나을까

 

 

 

 

 

의문이라는 시는 시를 필사할 때에도, 그리고 지금 다시 봐도 참 많은 고민거리를 주는 시입니다.

 

삶을 열고 닫는 일 중에 무엇이 나을지에 대한 고민이 그것이 맞는지도 궁금하고, 그런 고민도 해 보게 되고.. 그런 시입니다.

 

 


<이전 시 필사>

2020/10/29 - [개발 외의 이야기/시 필사] - [1일1시] Day 406 < 아름다움의 비밀 by 샘 레벤슨>

 

[1일1시] Day 406 < 아름다움의 비밀 by 샘 레벤슨>

오늘의 주제 시 샘 레벤슨 시인의 <아름다움의 비밀>입니다. 아름다움의 비결                                               샘 레벤슨 매력적인 입술..

newstory-of-dev.tistory.com

 

<다음 시 필사>

2020/10/31 - [개발 외의 이야기/시 필사] - [1일1시] Day 408 < 가을 엽서 by 안도현>

 

[1일1시] Day 408 < 가을 엽서 by 안도현>

오늘의 주제 시 안도현 시인의 <가을 엽서>입니다. 가을엽서                                       안도현 한 잎 두 잎 나뭇잎이 낮은 곳으로 자꾸 내려앉..

newstory-of-dev.tistory.com

 

 

 

언어 선택: JAVA, C#, C++, GO, JS, Kotlin, Python2, Python3, Ruby, Scala, Swift

 

[링크]

programmers.co.kr/learn/courses/30/lessons/12914

 

코딩테스트 연습 - 멀리 뛰기

효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2

programmers.co.kr

오늘의 문제는 얼핏 보면 순열과 조합을 처리하는 문제 같아 보이기도 하지만 n이 증가하는 값을 몇 개 봤을 때 피 보나 배열을 따르는 것을 확인하였습니다.

 

<아이디어>

그래서 그렇게 풀었지만... 지난번 피보나치수에서 어떤 문제가 있었는지 깔끔하게 풀리지 않아서인지... 결과가 만족스럽지는 않습니다.

 

<소스 코드>

 

 

<실행 결과>

 

피보나치 관련 뭐가 잘못되었나 두 문제가 관련이 있는 듯하여 피보나치 관련 정답 소스를 확인해 봤는데 뭐지.... 계산 과정에서 %1234567 연산을 처리하여 작업을 하면 채점 결과가 100%가 나오는 것을 확인할 수 있었습니다.

 

 

 

이유는 아직도 명확하게는 모르겠는.... 문제가 남아있습니다.

오늘의 주제 시 샘 레벤슨 시인의 <아름다움의 비밀>입니다.


아름다움의 비결

                                              샘 레벤슨

매력적인 입술을 갖고 싶으면
친절하게 말하십시오.

사랑스러운 눈을 갖고 싶으면
사람들에게서 좋은 점을 보십시오

날씬한 몸매를 갖고 싶으면
배고픈 사람들과 음식을 나누십시오.

아름다운 머릿결을 원한다면
하루에 한 번 어린아이에게
그대의 머리칼을 어루민지도록 하십시오.

아름다운 자태를 가지고 싶으면
그대가 결코 혼자가 아님을 기억하며 걸어가십시오.

무엇보다 소중한 존재인 인간은
회복되어야 하고,
새로워져야 하며,
소생되고,
교화되며,
구원받아야 합니다.

결코 그 누구도 버려져서는 안 됩니다.
그대에게 도움의 손길이 필요할 때
당신의 팔 끝에 손이 달려 있다는 것을 기억하십시오

그대가 나이를 먹어 감에 다라
당신은 두 개의 손이 있다는 것을
알게 될 것입니다.

한 손은 그대 자신을 도와주는 손이고
다른 한 손은 다른 사람들을 도와주기 위한 손입니다.

 

 

 

 

보통은 긴 시를 필사하는 것을 꺼리는 편이지만 이 시는 읽어보고 꼭 필사를 하고 싶어 져서 했습니다!

손이 두 개인데 지금은 자신도 타인도 돕지 못하고 있지만요...

 

 

 

 

 


<이전 시 필사>

2020/10/28 - [개발 외의 이야기/시 필사] - [1일 1시] Day 405 < 아버지의 나이 by 정호승>

 

[1일1시] Day 405 < 아버지의 나이 by 정호승>

오늘의 주제 시 정호승 시인의 <아버지의 나이>입니다. 아버지의 나이                                                             정호..

newstory-of-dev.tistory.com

 

<다음 시 필사>

2020/10/30 - [개발 외의 이야기/시 필사] - [1일 1시] Day 407 < 의문 by 이병률>

 

[1일1시] Day 407 < 의문 by 이병률>

오늘의 주제 시 이병률 시인의 <의문>입니다. 의문                                           이병률 유리창을 없애려면 어디에 쳐야 하나 무엇에 부딪혀..

newstory-of-dev.tistory.com

 

+ Recent posts