Algorithm(코딩테스트)/문자열2 [백준] 9093번 단어 뒤집기 <C++> 문제 문제 분석 / 시행 착오 문제의 요지는 쉽게 말하자면 문장에서 각 단어마다 반대로 뒤집어서 출력하는 것이 핵심이라고 볼 수 있다. 필자는 총 2번의 시행착오를 거쳤는데 이 글을 보는 많은 독자들이 이 2개의 시행착오 중 하나를 겪었을 것이라고 생각한다. 시행착오 1 : 문장이 1개만 입력되어지고 프로그램이 종료될 때 분명 예제 케이스를 잘 붙여넣기 했는데 시행착오 1 이 일어나는 경우에는 cin/getline과 cin.ignore() 의 개념을 몰라서 그런 것이다. cin은 강제 개행(즉, '\n')을 처리하지 않고 입력 버퍼로 남겨둔다. (즉, '\n'은 입력 버퍼에 남는다.) getline은 강제 개행(즉, '\n')을 입력 버퍼에서 가져와 처리한다. (즉, '\n'은 입력 버퍼에 남지 않는다... 2024. 2. 3. [백준 11478번 C++] 서로 다른 부분 문자열의 개수 (set/문자열) 문제 문제 분석 - 문자열의 size가 5라면, 문자열의 size가 1인 문자열, 2인 문자열, 3인 문자열, 4인 문자열, 5인 문자열을 모두 추출하고 중복을 제거하면 된다. - 중복을 제거하여 저장하는 것은 set/map 자료구조를 활용하면 된다. - 부분 문자열을 추출하기 위해서 substr을 사용하면 편하다. - 최종적으로 set에 담겨있는 문자열의 개수를 출력하면 정답이다. 정답 코드 - string.substr(a,b) 는 a번째 인덱스의 문자부터 b의 길이만큼 반환하는 것이다. ex) s = "hyeons"; s.substr(3,2); 라고 하면 3번째 인덱스인 "o"부터 2개인 "on"을 추출한다. //// str1 이 "Hello" 라면 str1.substr(3,2) 은 3번째 인자부터 .. 2024. 2. 1. 이전 1 다음