반응형

문자열 4

BOJ 5525 IOIOI

이 문제는 I,O로 구성된 문자열 중 IOI 가 몇개 포함되어 있는지 갯수를 구하는 문제이다. 처음 단순 부르트포스 방식으로 접근했다면 당연히 만점을 받지 못했을 것이다. 서브테스크 1의 경우 N> s; solution(); } 다음은 KMP 알고리즘을 활용한 풀이이다. 자세한 알고리즘 설명은 여기를 확인하면 된다. 알고리즘 - KMP 안녕하세요. 오랜만에 문어체로 시작하는데요, 학부동안 배운 알고리즘 또는 배우지 못한 다양한 알고리즘 및 자료구조 이론을 정리해보려고 합니다. 설명 과정에 틀린 부분이나 추가해야할 부 devconf.tistory.com #include #include #include using namespace std; int n, m; string s; vector getSkipTabl..

알고리즘/boj 2023.03.07

BOJ 1541 잃어버린 괄호

문자열 파싱을 연습해볼수 있는 괜찮은 문제이다. 풀이 방법은 여러가지 존재하는데 보통 풀이는 다음과 같다. 최솟값을 만들기 위해 가능한 가장 큰 숫자를 빼야 한다. 따라서 - 를 기준으로 문자를 나누고 다음 - 를 만나기 전까지 모두 더해서 한번에 빼주면 된다. 나는 조금 고전적이지만 스택을 사용하여 숫자와 - 기호를 쌓았다. 이후 하나씩 빼면서 - 를 만나기 전까지 결과를 모두 더하고 - 를 만나면 더한 값을 -1곱하여 누적 시켜주었다. #include #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); string s; cin >> s; stack..

알고리즘/boj 2022.12.30

1667. Fix Names in a Table

Users 테이블에 name 필드에서 name의 첫번째 문자는 대문자, 이후 문자는 소문자로 변환하여 반환하는 SQL을 작성하는 문제이다. (핵심은 SQL의 문자열 함수를 사용해 적절히 변환 하는것이다.) Mysql의 문자열 함수는 다음과 같은 것이 존재한다. 함수 사용법 반환 값 ASCII() ASCII(t) t의 아스키 코드값 리턴 CONCAT() CONCAT(t1,t2,.....) t1t2 형식의 문자열 CONCAT_WS() CONCAT_WS(S,t1,t2,....) t1St2S.. 형식의 문자열 LENGTH() LENGTH(t) 문자열 t의 길이 CHAR_LENGTH() CHAR_LENGTH(t) 문자열 t의 길이 single-byte, multi-byte 미구별 CHARACTER_LENGTH()..

2021 카카오 채용연계형 인턴십 (숫자 문자열 영단어)

입력으로 영어와 숫자가 포함된 문자열이 들어오면 문자열을 원래 숫자로 치환하는 문제이다. 개발은 Java로 하는데 알고리즘은 C++로 푸는 것이 편해서 오랜만에 풀다보니 문법을 다 까먹었다. 처음에는 s.length() 만큼 반복하면서 알파벳을 누적하고 누적과 동시에 해당 문자열이 숫자로 치환 가능한지 체크하는 함수를 만들어 풀려고 시도 했다. 그냥 삽질했음.... std::string 의 메소드를 잘 알지 못해서 이런 이상한 짓을 하였다. 사실 Python에는 replace함수를 매우 간단히 쓸수 있어 C++은 외우지 않았다.... (std::string에 replace가 있다니... 심지어 to_string 도 내장... WOW) 풀이는 다음과 같다. #include #include using nam..

1
반응형