| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- 리그오브레전드턴제게임
- c#기초문법
- 백준
- 백준코딩테스트
- c#코테
- 백준 c++ 공부
- Unity
- 백준 구현문제
- unity게임
- 유니티서바이벌게임만들기
- 백준코테
- 오블완
- 백준 C++
- c++ 백준
- 바킹독
- solved class 2
- C++
- unity게임만들기
- c#코딩기초트레이닝
- 유니티공부
- 유니티
- c#기본문법
- c++ solved.ac
- 티스토리챌린지
- 유니티게임만들기
- 바킹독알고리즘
- unity3d게임만들기
- C#문법
- c#
- unity3dservival
- Today
- Total
나 개발자 진짜 되냐?
코딩테스트 입문 - 외계어 사전 ( find 사용법 ) 본문

맨날 이렇게 답지 봐서는..
이래 가지고 코테 문제 풀 수 있겠어!!?!?!?!!!?!?!?!?
하지만 내가 몰랐던 거 정리해야 하니까..^-^..


내 계획은..!
dic에서 한 개씩 꺼내서
find? 를 이용해서 찾는 것..!

초안을 작성해서 지피티한테 보냈다.
왜냐면 find의 함수가 기억이 안 나서.....
find
find는
어디에서. find(찾을 단어)
로 써야 한다.
나는 지금
find(찾을 단어, 어디에서)로 써놨다.
그래서
s.find(spell [i]) == string :: npos
로 써야 한다.
그리고 이렇게 yes or no 일 땐 bool값을 써보는 것도 괜찮다고 했다.
네
is_match = true로 해놓다.
그다음이 어렵다
어떻게 하라는 건지...
인지 씨에게 물었다.
1. spell의 있는 모든 단어를 사용해야 하니,
dic와 spell길이는 같아야 한다.
즉 dic의 길이가 spell길이랑 다르면 검사할 이유가 없다.
2. 아까 방식대로 s.find(spell [i]) == ::string::npos를 사용해서
false 해주고 하나라도 틀리면 모두 들어가는 게 아니니까 break 해준다.
3.
for문으로 글자수 다 돌아봤지만 false가 안 됐다면
그 녀석은 맞는 식이니
바로 탈출 return 1;

어렵다... 어려워..!!
이미 위에서 is_match로 1을 내보내기 때문에
맨 마지막줄까지 왔다는 건 무조건 2여서
return 2해도 된다고 한다.
갑자기
보너스라고 방법을 하나 더 던져줬다.
어차피! 글자수는 같고
찾기만 하면 되니까.
spell을 다 string 빈통에 합치고
sort 해준다.
그리고 dic도 글자 길이가 같다면
sort 해주고
빈 통에 넣어놨던 spell값과 dic값이 같으면 1
다 돌았는데도 없으면 2를 내면 끝..! 매우 간단!

이렇게 생각하니 참 쉽다.

굉장히 짠 점수...
역시 패턴이라는 게 중요한 거 같다.
이걸파악하는게 제일 힘든 거 같기도 하고..
아니 가끔 푸르트 포스 때문에
if / else 많으면 머리 터질 거 같고.. 틀릴까 봐 걱정되고..
그냥 참.. 이게..
어렵다 어려워.
'프로그래머스를 풀어보아요! > C++' 카테고리의 다른 글
| 코딩테스트 입문 - 겹치는 선분의 길이 ( 도화지 채우기 ) (0) | 2026.05.19 |
|---|---|
| 코딩테스트 입문 - 평행 ( 기울기 구하는 법 ) (0) | 2026.05.19 |
| 코딩테스트 입문 - 삼각형의 완성조건 (2) ( min, max, 패턴 ) (0) | 2026.05.18 |
| 코딩테스트 입문 - 최댓값 만들기 (2) ( size()-1 ) (0) | 2026.05.18 |
| 코딩테스트 입문 - 숨어있는 숫자의 덧셈 (2) ( isdigit() ) (0) | 2026.05.18 |
