알고리즘 C++

한 번만 등장한 문자 (Programmers) 문제 풀이 🤔

minsoungdev 2026. 7. 22. 23:45

안녕하세요. 박민성입니다. 

 

오늘은 정어어어어말 쉬운 문제를 풀어볼 겁니다.

 

문제는 한 번만 등장한 문자라는 문제인데요.

입력은 

문자열 s가 주어집니다.

 

출력은

주어진 문자열에서 단 한번만 등장한 문자들을 출력하는 것입니다.

 

일단 map을 인클루드 해줍니다. map이란 c++에 있는 c#으로 치면 Dictionary와 같은 친구입니다.

map 또한 Key, Value를 쌍으로 동작하고 Key는 중복이 안되는 자료구조입니다.

 

일단 map을 선언해줍니다. Key는 char(문자), Value는 int(정수)로 선언해줍니다.

그리고 정답을 담고 반환해줄 answer도 선언합니다. (기본적으로 만들어져 있습니다.)

 

그리고 매개변수로 들어온 s만큼 for문을 돌리고 s에 있는 글자를 map에 주소처럼 사용하여 

++해줍니다. 그러면 Value값인 int가 올라갑니다.

 

그러고 범위 기반 for문(c#에 foreach)를 사용해서 m(map)에 있는 요소들을 다 확인합니다.

map에 있는 요소를 Kek와 Value를 pair로 받아서 한 묶음으로 사용할 수 있습니다.

pair는 서로 다른 타입의 두 값을 하나의 객체로 묶어주는 친구입니다.

pair에 값을 사용할 때면 first와 second를 사용하면 됩니다. 지금은 first가 Key, second가 Value입니다.

 

만약에 Value값이 1이면 위에 for문을 통해서 1번만 등장한 것을 알 수 있으니 

1번만 등장한 문자를 answer에 Key값을 넣어줍니다.

 

그러고 그 문자열을 반환하면 끝입니다.

 

전체 코드입니다.

 

오늘도 정어어어어어어어어어어어어어어어어어어말 쉬운 문제를 풀어봤는데요...

 

오늘 갑자기 개인적으로 정말 슬픈 일을 겪었습니다... 결코 인생에서 잊지 못할 하루가 될 것입니다.

그렇기에 오늘은 간단한 문제를 풀이 해보았는데요..내일은 c#에 람다를 소개해볼 예정입니다.. 오늘은 웃지 못하겠네요..

 

내일은 더욱 알차게 보내고 작성해보도록 하겠습니다. 

봐주셔서 감사합니다.