알고리즘/BOJ 1235

백준 17779번 게리맨더링 2

문제 링크입니다: https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름�� www.acmicpc.net 생각보다 문제를 이해하기 어려웠던 문제였습니다. 대체로 삼성 문제는 실제 구현을 하는 과정보다 문제를 이해하는 과정이 더 어렵게 느껴지는 것 같습니다. (책 읽는 것을 습관화해야하는 이유) 아무튼, 문제를 이해하고 나면 별로 어렵지 않은 문제입니다. 문제를 읽다보면 선거구를 나누는 방법이 주어집니다. 여기서 저희가 주목해야할 파트는 2번과 4번입니다. 2번과 4번에 주어진 구간을 ..

알고리즘/BOJ 2020.04.30

백준 17825번 주사위 윷놀이

문제 링크입니다: https://www.acmicpc.net/problem/17825 17825번: 주사위 윷놀이 주사위 윷놀이는 다음과 같은 게임판에서 하는 게임이다. 처음에는 시작 칸에 말 4개가 있다. 말은 게임판에 그려진 화살표의 방향대로만 이동할 수 있다. 말이 파란색 칸에서 이동을 시작하면 � www.acmicpc.net 각 칸마다 도, 개, 걸, 윷, 모 가 나올 때 도착할 수 있는 지점을 미리 저장해놓고 모든 경우의 수를 시뮬레이션을 돌려 풀었던 문제였습니다. 말은 총 4개이고 주사위는 10번 굴렸기 때문에 4^10 즉, 2^20 이기 때문에 시간 내 돌아갈 수 있다는 것은 자명합니다. 각 말은 0, 1, 2, 3 으로 표시하였고 이진수로 00, 01, 10, 11 과 같이 표현했습니다. ..

알고리즘/BOJ 2020.04.30

백준 2531번 회전초밥

문제 링크입니다: https://www.acmicpc.net/problem/2531 2531번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ k ≤ 3,000 (k ≤ N), 1 ≤ c ≤ d이다. 두 번째 줄부터 N개의 줄에는 벨트의 한 위치부터 시작하여 회전 방향을 따라갈 때 초밥의 종류를 나타내는 1 이상 d 이하의 정수가 각 줄마다 하나씩 주어진다. www.acmicpc.net 모듈러 연산을 잘 사용해야 하는 문제였습니다. i = 0부터 탐색을 진행하기 때문에 0 이전 즉, (N - k) ~ (N -..

알고리즘/BOJ 2020.04.26

백준 2530번 인공지능 시계

문제 링크입니다: https://www.acmicpc.net/problem/2530 2530번: 인공지능 시계 첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0분 0초가 된다.) www.acmicpc.net 간단한 수학 문제였습니다. 쉬운 코딩테스트에서는 이와 비슷한 문제가 나왔던 것으로 기억합니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2020.04.26

백준 2526번 싸이클

문제 링크입니다: https://www.acmicpc.net/problem/2526 2526번: 싸이클 두 자연수 N과 P를 가지고 다음 과정을 거쳐서 나오는 숫자들을 차례대로 출력해보자. 처음 출력하는 숫자는 N이고, 두 번째 이후 출력하는 숫자들은 N을 곱하고 P로 나눈 나머지를 구하는 과정을 반복하여 구한다. 즉, 먼저 N에 N을 곱하고, 이 수를 P로 나눈 나머지를 두 번째에 출력한다. 다음에는 이 나머지에 N을 곱하고 P로 나눈 나머지를 출력한다. 다음에는 이 나머지에 N을 곱한 후 P로 나눈 나머지를 출력한다. 이 과정을 계속 반복해보면 출력 www.acmicpc.net 똑같은 숫자가 2번 이상 나오면 싸이클에 포함되어 있다고 간주하면 되는 문제였습니다. 개발환경:Visual Studio 20..

알고리즘/BOJ 2020.04.26

백준 5568번 카드 놓기

문제 링크입니다: https://www.acmicpc.net/problem/5568 5568번: 카드 놓기 문제 상근이는 카드 n(4 ≤ n ≤ 10)장을 바닥에 나란히 놓고 놀고있다. 각 카드에는 1이상 99이하의 정수가 적혀져 있다. 상근이는 이 카드 중에서 k(2 ≤ k ≤ 4)장을 선택하고, 가로로 나란히 정수를 만들기로 했다. 상근이가 만들 수 있는 정수는 모두 몇 가지일까? 예를 들어, 카드가 5장 있고, 카드에 쓰여 있는 수가 1, 2, 3, 13, 21라고 하자. 여기서 3장을 선택해서 정수를 만들려고 한다. 2, 1, 13을 순서대로 나열하면 www.acmicpc.net map을 통해 이미 등장한 숫자인지를 판별해줬고, next_permutation을 사용하여 모든 숫자의 조합을 판별했습..

알고리즘/BOJ 2020.04.21

백준 17609번 회문

문제 링크입니다: https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 가지치기를 잘해야 하는 문제였습니다. 1. 해당 인덱스가 회문의 조건을 충족할 때는 다음 인덱스로 넘어가고 2. 해당 인덱스가 회문의 조건을 충족하지 않을 경우 i) 현재 인덱스에 있는 문자를 제거한 문자열이 회문을 충족하는지 ii) 혹은 짝을 이루는 인덱스에 위치한 문자를 제거한 문자열이 회문을 충족하는지 판별하면 되는 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다!..

알고리즘/BOJ 2020.04.20

백준 17088번 등차수열 변환

문제 링크입니다: https://www.acmicpc.net/problem/17088 17088번: 등차수열 변환 크기가 N인 수열 A = [A1, A2, ..., AN]이 있을 때, 모든 1 ≤ i < N에 대해서, Ai+1-Ai가 모두 일치하면 등차수열이라고 한다. 예를 들어, [3], [6, 6, 6], [2, 8, 14, 20], [6, 4, 2]는 등차수열이고, [4, 5, 4], [6, 3, 1]은 등차수열이 아니다. 수열 B = [B1, B2, ..., BN]을 등차수열로 변환하려고 한다. 각각의 수에는 연산을 최대 한 번 적용할 수 있다. 연산은 두 가 www.acmicpc.net N의 크기가 최대 100,000이기 때문에 모든 경우의 수를 고려하는 코드를 작성할 경우 TLE가 발생할 것이..

알고리즘/BOJ 2020.04.17