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차] 압축
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