본문 바로가기
Algorithm/그리디

백준 1543 문서검색

by 젊은오리 2022. 1. 31.
728x90

 

 

 

 

 

#1번째방법

Key point

첫번째 방법은 이중for문 돌려서 문자하나씩 비교해가면서 flag로 접근했다. substring 조각이 맞춰졌다면 그 인덱스만큼 더해주는 것이 키포인트가 될거같고 앞에 substring길이가 더 큰경우에 대해서 예외처리를 안해주면 런타임에러가 발생한다.

 

 

 

 

#2번째방법

string의 substr함수를 사용하는 방법도 있던데 이걸로도 풀어봤다. 인자는 첫번째 문자위치(pos), 부분문자열의 길이(count) 두가지이고 리턴값은 [pos, pos+count]까지의 문자열을 반환한다. 만일 pos가 원래문자열길이보다 길다면 out of range 예외발생하니 주의해야한다. 

 

쉽게말해서 substr는 그냥 인덱스와 길이를 적어넣으면 부분문자열 추출해주는건데 이문제에 적용하면 쉽게 풀수 있다.

1번째방법처럼 문자에 대응하는 문자를 계속 비교해나가는 것이 아니라 긴 문자열에 대해 문자하나씩 순회해서 1중 for문으로도 해결할 수 있기 때문에 더 간단하게 작성할 수 있다.

 

위 방법과 마찬가지로 부분문자열을 찾고나서 그 부분문자열의 길이만큼 더해주는 작업이 필요하기 때문에 이부분이 제일 중요하지 않나 생각한다,,

 

 

 

 

 

 

 

 

728x90

'Algorithm > 그리디' 카테고리의 다른 글

백준 1343 폴리오미노  (0) 2022.02.01
백준 2437 저울  (0) 2022.02.01
백준 1049 기타줄  (0) 2022.01.30
백준 1541 잃어버린 괄호 c++  (0) 2022.01.26
[백준] 1931 회의실 배정 c++  (0) 2022.01.26

댓글