문제 출처: https://www.acmicpc.net/problem/25682 25682번: 체스판 다시 칠하기 2 첫째 줄에 정수 N, M, K가 주어진다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 분석 해당 문제는 누적합 관련 알고리즘을 풀면서 발견한 문제입니다. 기존의 체스판 다시 칠하기의 최적화 버전으로, 더 큰 사이즈의 보드와 줄어든 시간 제한의 차이가 있습니다. 기존 체스판 다시 칠하기는 브루트 포스(brute force) 방식으로, 8 x 8 크기의 체스판을 다시 칠하는 최소 개수를 구하는 문제였습니다. 여기에 8로 고정이었던 체스판의 크기를 k로, 시간 제한을 2초 -> 1초로, 보드의 N과 M의 최대..
문제 출처:https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 코드는 다음과 같습니다: #include #include #include using namespace std; int solution(vector citations) { int answer = 0 ; sort(citations.rbegin(), citations.rend()) ; if (citations[0] == 0)..
문제 출처:https://www.acmicpc.net/problem/2822 2822번: 점수 계산 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문 www.acmicpc.net 문제 분석 이 문제는 총 8개의 점수 중 가장 큰 5개의 합을 출력하고 각각의 순서를 출력하면 됩니다. 다만 순서를 출력할 때는 오름차순으로 두어야하기 때문에 저는 이 문제를 풀기 위해서 sort를 2번 사용했습니다. 각 점수들을 pair형태로 를 입력합니다 pair를 내림차순으로 정렬합니다 가장 큰 5가지의 숫자들을 사용하기 때문에 5가지의 숫자들로 sum을 구하고, 그 숫자들..
문제 출처:https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 문제 분석 말 그대로 주어진 정수들을 이어붙일 때에 가장 큰 수를 찾아서 string 형태로 출력하면 되는 문제입니다. 저는 이 문제를 sort를 해주어야 한다고 생각했었고 custrom한 compare함수를 통해서 비교했습니다. string 자체적으로 크기비교가 되기 때문에 각 숫자들을..
문제 출처:https://leetcode.com/problems/valid-palindrome/ Valid Palindrome - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 분석 말 그대로 non-alphanumeric 영문자가 아닌 글자들을 제외한 문자열을 소문자로 둘때, 양쪽이 종이접듯이 같은 배열을 가지고 있으면 true 그렇지 않다면 false를 출력하는 문제입니다. c++에서는 isalpha와 isdigit라는 함수를 지원해주는데 각각 알파벳인..