본문 바로가기

알고리즘

(179)
15927번 : 회문은 회문아니야!! https://www.acmicpc.net/problem/15927 15927번: 회문은 회문아니야!! 팰린드롬이란 앞으로 읽으나 뒤로 읽으나 같은 문자열을 말한다. 팰린드롬의 예시로 POP, ABBA 등이 있고, 팰린드롬이 아닌 것의 예시로 ABCA, PALINDROME 등이 있다. 같은 의미를 가지는 여러 단어들을 보자. 회문 (한국어) palindrome (영어, 프랑스어, 노르웨이어, 그리스어, 라틴어) 回文 (일본어, 중국어) palindrom (독일어, 덴마크어) palindromi (핀란드어) palíndromo (스페인어, 포르투갈어) pal www.acmicpc.net 이 문제는, 과거에 풀다가 실패한 문제이다ㅠㅠ... 어느정도 알고리즘을 풀어봤다면, 회문의 정의는 알 것이다. 이 문제는..
2167번: 2차원 배열의 합 https://www.acmicpc.net/problem/2167 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 합을 구할 부분의 개수 K(1 ≤ K ≤ 10,000)가 주어진다. 다음 K개의 줄에는 네 개의 정수로 i, j, x, y가 주어진다(i ≤ x, j ≤ y). www.acmicpc.net 다이나믹 프로그래밍 문제인데, 점화식의 정의를 어떻게 하는가가 중요한 문제이다. 점화식은 어떤 n에 대해서도 해당하기 때문에, 1부터 원하는 n까지 구할 수 있다. dp[301][301]을 선언하고, dp[i]..
[찾아라 프로그래밍 마에스터] 사칙연산 https://programmers.co.kr/learn/courses/30/lessons/1843 코딩테스트 연습 - 사칙연산 | 프로그래머스 [5, -, 3, +, 1, +, 2, -, 4] 3 programmers.co.kr 쉽지 않은 문제였다. 스택을 이용해서 풀려고 하니 답이 없어서 해설을 보았다. 동적계획법 문제는 항상, 동적계획법인 것을 알고나면 쉬워진다... 보통의 사칙연산 문제는 스택을 이용한 문제가 대부분이지만, 이 문제는 다르다. +, -를 이용한 연산에서, 연산의 우선순위를 지정해 가장 최댓값을 구하는 것이다. 작은 범위의 최댓값을 구해 놓으면, 더 큰 범위는 작은 범위를 이용해서 구할 수 있다. a1 + a2 - a3 + a4 - a5 + a6 - a7 + a8을 생각해보면, a1..
[2018 KAKAO BLIND RECRUITMENT] [3차] n진수 게임 https://programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 | 프로그래머스 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다. 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다. 이렇게 게임을 진행할 programmers.co.kr n진수 게임은, 특정한 수를 n진법에 맞게 변환하는 규칙을 찾으..
[C++] char 자료형에서 string 자료형으로 변환하는 법 https://www.techiedelight.com/convert-char-to-string-cpp/ 10 ways to convert a char to a string in C++ - Techie Delight In this post, we will discuss various methods to convert a char to a string in C++. Simple solution would be to use string class fill constructor string (size_t n, char c); which fills the string with n copies of character c. Another good alternative is to www.techiedelight.com..
[2018 KAKAO BLIND RECRUITMENT] [3차] 파일명 정렬 https://programmers.co.kr/learn/courses/30/lessons/17686#qna 코딩테스트 연습 - [3차] 파일명 정렬 | 프로그래머스 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예 programmers.co.kr 이 문제는 우선순위 큐를 이용해서 쉽게 풀 수 있었다...
[2018 KAKAO BLIND RECRUITMENT] [3차] 자동완성 https://programmers.co.kr/learn/courses/30/lessons/17685 코딩테스트 연습 - [3차] 자동완성 | 프로그래머스 자동완성 포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g 만 입력해도 go를 추천해주므로 o를 입력할 필요가 없어진다! 단, 학습에 사용된 단어들 중 앞부분이 같은 경우에는 어쩔 수 없이 다른 문자가 나올 때까지 입력을 해야 한다. 효과가 얼마나 좋을지 알고 싶은 라이언은 학습된 단어들을 찾을 때 몇 글자를 입력해야 하 programmers.co.kr 이 문제는 Trie 자료 구조를 사용해서 풀어야 한다. Trie ..
[2018 KAKAO BLIND RECRUITMENT] [3차] 압축 https://programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 | 프로그래머스 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 아무리 봐도 카카오는 문자열 문제를 정말 좋아한다... 이번 문제는, 설명이라기보다는 코드를 보면 쉽게 이해할 수 있다. 문자열 문제가 그렇듯, 항상 인덱스의 범위를 확인해줘야 한다. 이번 코드를 풀기 위해서 2중 while문을 작성했는데, 종료되지 않은 경우가 있었다. // Find while (m.count(msg.substr(idx, len)) != 0) { cout