본문 바로가기

분류 전체보기79

[C++] 백준 9996번: 한국이 그리울 땐 서버에 접속하지 문제링크 https://www.acmicpc.net/problem/9996 풀이방법 String STL을 사용하여 쉽게 해결 할 수 있다. 두가지 조건에 대한 아이디어만 얻으면 쉽게 해결할 수 있다. 첫번째, 파일이름의 길이가 패턴이름에서 * 하나를 뺀 값 보다 작은 경우에는 당연히 패턴과 일치할 수 없다. 위 경우를 제외하고는 패턴이름의 앞 문자열과 뒤 문자열이 파일이름의 앞 문자열(패턴 이름의 앞문자열의 길이만큼) 뒤 문자열과(패턴 이름의 뒤 문자열 길이만큼)둘다 같으면 패턴이 일치하고 그렇지 않으면 패턴이 일치하지 않는다. 위 내용을 참고해서 코드를 보면 이해가 될 것 이다. 참고로 String STL에 포함된 substr 함수를 사용하니 해당 함수의 사용법을 익히도록 하자. String 객체에 대.. 2024. 2. 4.
[C++] 백준 2941번: 크로아티아 알파벳 문제링크 https://www.acmicpc.net/problem/2941 풀이방법 String STL을 사용하여 쉽게 해결 할 수 있다. 모든 크로아티아 알파벳을 Vector에 넣어 놓고 입력 받은 문자열 중에 크로아티아 알파벳이 존재하면 해당 문자열을 1로 변경한다. 최종적으로 1로 변경된 개수를 세면 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 알 수 있다. 참고로 String STL의 내장된 find함수와 replace함수를 통해서 매우 쉽게 해결 할 수 있다. String 객체에 대해서 잘 모른다면 아래 영상을 참고하자 https://www.youtube.com/watch?v=Mj6D3HW_rCw&list=PLtqbFd2VIQv4O6D6l9HcD732hdrnYb6CY&index=.. 2024. 2. 4.
[C++] 백준 1543번: 문서 검색 문제링크 https://www.acmicpc.net/problem/1543 풀이방법 String STL을 사용하여 쉽게 해결 할 수 있다. 찾고 하는 문자열을 찾은 뒤에는 그 문자열 이후 문자열부터 다시 찾는 방식으로 개수를 세어나가면 정답을 구할 수 있다. 특히 string STL 에 내장되어있는 find 함수를 사용하면 더욱 쉽게 해결할 수 있다. String 객체에 대해서 잘 모른다면 아래 영상을 참고하자 https://www.youtube.com/watch?v=Mj6D3HW_rCw&list=PLtqbFd2VIQv4O6D6l9HcD732hdrnYb6CY&index=33 코드 #include using namespace std; int pos = 0; int main() { ios::sync_with.. 2024. 2. 4.
[C++] 백준 5052번: 전화번호 목록 문제링크 https://www.acmicpc.net/problem/5052 풀이방법 해당 문제를 트라이 알고리즘을 공부하기 위한 목적으로 트라이 알고리즘을 이용하여 풀었다. 트라이 알고리즘이란 문자열을 효율적으로 처리하기 위한 트리 자료 구조이다. 아래 코드에 대한 상세 설명은 다음과 같고 추가적으로 주석에 설명을 덧붙였다. 코드 설명 c2i 함수: 문자를 정수로 변환해주는 함수입니다. '0'부터 '9' 사이의 문자에 대해 해당 문자의 정수값을 반환합니다. insert 함수: 주어진 전화번호를 트라이에 추가하고 중복 여부를 검사하는 함수입니다. 아래는 함수의 주요 동작을 설명한 것입니다. cur 변수를 루트 노드로 초기화합니다. 문자열 s의 각 문자 c에 대해 다음을 반복합니다. cur 노드에서 문자 c.. 2024. 2. 4.