본문 바로가기

알고리즘52

[C++] 백준 2870번: 수학숙제 문제 링크 https://www.acmicpc.net/problem/2870 풀이 방법 해당 문제를 푸는데 꽤 시간이 소모되었다. 이 문제를 해결하는데 가장 중요한 Key Points는 네 가지다. 우선 문자열 시작부터 탐색하여 숫자로만 이루어진 문자열을 추출한다. 추출한 해당 문자열이 모두 0으로 이루어져 있으면 "0"하나만 vector에 담는다 0으로 시작하는 숫자는 모두 무시하고 0 이후 시작되는 숫자부터 문자열을 다시 추출하여 vector에 담는다. 숫자를 int, long long 형으로 담으면 Over Flow가 발생할 수 있으니 문자열 그대로 비교 함수를 만들어서 숫자를 오름차순 정렬한다. 위 설명과 아래 코드의 주석을 참고해서 해당 문제를 이해하자! 코드 #include using name.. 2024. 2. 4.
[C++] 백준 3613번: Java vs C++ 문제링크 https://www.acmicpc.net/problem/3613 풀이방법 해당 문제는 다양한 조건을 전부 고려해야 한다는 부분에서 어려운 문제라고 생각한다. 하나라도 놓치면 해당 문제를 맞출 수 없기 때문에 다음과 같은 조건을 잘 고려해야 한다. 맨 뒤 문자가 '_' 이면 (Error!) 맨 앞 문자가 '_' 이면 (Error!) '_' 연속 두개 존재하면 (Error!) 맨 앞 문자가 대문자면 에러 (Error!) 대문자와 '_'가 각각 1개 이상 동시에 존재하면 (Error!) 그 외에 문제에서 정해진 조건인 영어 알파벳과 밑줄('_')로만 이루어져 있는 경우는 정상이라고 볼 수 있다. 아래 코드의 주석을 참고해서 해당 문제를 이해하자! 코드 #include using namespace s.. 2024. 2. 4.
[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.