본문 바로가기
  • 실행력이 모든걸 결정한다
반응형

Algorithm/String3

[String] 매칭 점수 - 2019 KAKAO BLIND RECRUITMENT 해결 방법 이 문제는 특별한 알고리즘을 요구하지는 않고, 문자열 파싱과 구현만 잘 해준다면 해결할 수 있다. 웹 페이지의 url은 meta 태그의 content 속성에 있다는 사실, 외부 링크는 a 태그의 href 속성에 있다는 사실, 그리고 단어는 알파벳을 제외한 다른 모든 문자로 구분한다는 사실을 잊지 말도록 하자. 구현 방식은 문제 설명에서 자세히 나와있으므로 이제 틀리기 쉬운 테스트케이스를 짚어보겠다. - 링크점수 또는 매칭점수를 float형으로 두고 계산하면 테스트케이스 8번에서 막히기 쉽다. 정밀도(유효자릿수)가 더 높은 double형을 사용하자. float의 유효자릿수는 7이고, double의 유효자릿수는 15이다. - 웹 페이지의 url을 추출하기 위해 "content="를 기준으로 찾는 .. 2022. 6. 7.
[문자열] 방금그곡 - 2018 카카오 블라인드 채용 해결 방법 이 문제의 핵심은 치환이다. 치환 방법을 사용하지 않는다면 많은 소스 코드가 필요할 것이다. 왜냐하면, 하나의 음이 하나의 문자열을 차지해야 string 라이브러리를 편리하게 사용할 수 있기 때문이다. A#, C#, D#, F#, G#도 하나의 음이기 때문에 이를 각각 a, c, d, f, g로 치환해서 해결하면 된다. 각 함수의 용도는 주석으로 표시했다. 소스 코드 #include #include #include #include using namespace std; // 음악의 순번, 시작 시간, 끝 시간, 이름, 악보, 재생시간을 담은 구조체 struct music { int id; string start; string end; string name; string sheet; int len.. 2022. 3. 15.
[문자열] 문자열 압축 - 2020 카카오 블라인드 채용 주의할 점 이 문제를 이해할 때 놓치기 쉬운 포인트가 있는데, 문자열을 제일 앞부터 고정된 길이만큼 잘라야 하는 것이다. 즉, "ababcdcdababcdcd" 문자열을 2개 단위로 자르려면 다음과 같이 잘라야 하는 것이다. -> ab/ab/cd/cd/ab/ab/cd/cd 필자는 이 조건을 놓친 덕에 총 2문제를 풀게 되었다. 이 조건 없는게 더 압축 효율이 좋을텐데... 어쨌든, 문자열을 제일 앞부터 자르지 않아도 되는 경우에 해당하는 소스코드는 맨 아래에 첨부하였다. 해결 방법 본 문제로 넘어가서, 필자는 다음과 같은 방법으로 문제를 해결했다. 문자열을 1개 단위부터 s.length()/2개 단위까지 자른 모든 경우를 따져봐서, 압축된 각 문자열들의 최솟값을 구했다. 그리고, 문자열을 a개 단위로 자.. 2022. 3. 4.