목록전체 글 (180)
YataNox
문제 문제 크기가 N×M인 격자판의 각 칸에 정수가 하나씩 들어있다. 이 격자판에서 칸 K개를 선택할 것이고, 선택한 칸에 들어있는 수를 모두 더한 값의 최댓값을 구하려고 한다. 단, 선택한 두 칸이 인접하면 안된다. r행 c열에 있는 칸을 (r, c)라고 했을 때, (r-1, c), (r+1, c), (r, c-1), (r, c+1)에 있는 칸이 인접한 칸이다. 입력 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 N개의 줄에 격자판에 들어있는 수가 주어진다. 출력 선택한 칸에 들어있는 수를 모두 더한 값의 최댓값을 출력한다. 요약하면 K 개만큼 NxM 배열의 값 추출해서 더한 최대 값을 도출해야하는 문제이다. 브루트 포스 문제이다. 하지만 상하좌우로 인접한 값은 빼야한다는 조건이 존재하기 때문에 단..
문제 문제 최근에 ICPC 탐사대는 남아메리카의 잉카 제국이 놀라운 문명을 지닌 카잉 제국을 토대로 하여 세워졌다는 사실을 발견했다. 카잉 제국의 백성들은 특이한 달력을 사용한 것으로 알려져 있다. 그들은 M과 N보다 작거나 같은 두 개의 자연수 x, y를 가지고 각 년도를 와 같은 형식으로 표현하였다. 그들은 이 세상의 시초에 해당하는 첫 번째 해를 로 표현하고, 두 번째 해를 로 표현하였다. 의 다음 해를 표현한 것을 이라고 하자. 만일 x < M 이면 x' = x + 1이고, 그렇지 않으면 x' = 1이다. 같은 방식으로 만일 y < N이면 y' = y + 1이고, 그렇지 않으면 y' = 1이다. 은 그들 달력의 마지막 해로서, 이 해에 세상의 종말이 도래한다는 예언이 전해 온다. 예를 들어, M ..
문제 문제 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다. 예를 들어, 15년은 15 15 15로 나타낼 수 있다. 하지만, 1년이 지나서 16년이 되면 16 16 16이 아니라 1 16 16이 된..
문제 문제 상근이는 어렸을 적에 "봄보니 (Bomboni)" 게임을 즐겨했다. 가장 처음에 N×N크기에 사탕을 채워 놓는다. 사탕의 색은 모두 같지 않을 수도 있다. 상근이는 사탕의 색이 다른 인접한 두 칸을 고른다. 그 다음 고른 칸에 들어있는 사탕을 서로 교환한다. 이제, 모두 같은 색으로 이루어져 있는 가장 긴 연속 부분(행 또는 열)을 고른 다음 그 사탕을 모두 먹는다. 사탕이 채워진 상태가 주어졌을 때, 상근이가 먹을 수 있는 사탕의 최대 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 보드의 크기 N이 주어진다. (3 ≤ N ≤ 50) 다음 N개 줄에는 보드에 채워져 있는 사탕의 색상이 주어진다. 빨간색은 C, 파란색은 P, 초록색은 Z, 노란색은 Y로 주어진다. 사탕의 색이 다른 인접한..
문제 문제 1742년, 독일의 아마추어 수학가 크리스티안 골드바흐는 레온하르트 오일러에게 다음과 같은 추측을 제안하는 편지를 보냈다. 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. 예를 들어 8은 3 + 5로 나타낼 수 있고, 3과 5는 모두 홀수인 소수이다. 또, 20 = 3 + 17 = 7 + 13, 42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23 이다. 이 추측은 아직도 해결되지 않은 문제이다. 백만 이하의 모든 짝수에 대해서, 이 추측을 검증하는 프로그램을 작성하시오. 입력 입력은 하나 또는 그 이상의 테스트 케이스로 이루어져 있다. 테스트 케이스의 개수는 100,000개를 넘지 않는다. 각 테스트 케이스는 짝수 정수 n 하나로 이루어져 있다. (6 ≤..
문제 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 요약하자만 입력하는 M부터 N까지의 숫자 사이의 소수를 구하는 문제이다. 소수를 구하는 여러 방법이 있겠지만 에라토스테네스의 체를 활용해서 풀어보겠다. 더보기 에라토스테네스의 체? 수학에서 에라토스테네스의 체는 소수를 찾는 빠르고 쉬운 방법. 1. 2부터N까지모든수를써놓는다. 2. 아직지워지지않은수중에서가장작은수를찾는다. 3. 그수는소수이다. 4. 이제그수의배수를모두지운다. 5. 찾는 수의 배수가 N보다 커질 때..
개발자가 개발에 용이할 수 있도록 공통으로 사용될 수 있는 특정한 기능을 모듈화한 것들을 의미한다. 개발자가 자주 사용하는 클래스나 메소드를 모듈화 시키고 특정 위치에 불러내어 사용하는 것이 두 형태로 발전 된 것. 라이브러리 라이브러리란 개발자가 만든 클래스들의 나열로, 다른 프로그램들에서 사용할 수 있도록 제공하는 방식. 프레임워크 프레임워크는 뼈대나 기반구조를 뜻하며, 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' 이라 할 수 있다. 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야합니다. 객체 지향 개발을 하게 되면서 통합성, 일관성의 부족이 발생되는 문제를 해결할 방법중 하나라 할 수 있다. 프레임워크의 특징 특정 ..
AWS X - Ray 이전에 프로덕션에서의 디버깅 할 때 좋은 방식은 • 로컬에서 테스트하기 • 모든 위치에 로그 문 추가 • 운영 중 재배포한 뒤 로그를 보며 파악 핵심은 운영 환경에서는 디버깅이 까다롭다. 게다가 애플리케이션이 여러 개라고 한다면 CloudWatch를 사용하는 애플리케이션마다 로그 형식이 다르며 분석이 어렵다. X-Ray는 이러한 상황에서 애플리케이션에 대한 시각적인 분석을 제공한다. 애플리케이션에 요청을 수행하는 클라이언트 입장에서 요청이 얼마나 성공/실패하는지 확인하며 애플리케이션이 하는 작업들도 볼 수 있다. 장점을 살펴보자. 트러블 슈팅이 가능하고 병목 현상을 식별할 수 있다. 마이크로 서비스 아키텍쳐의 의존관계를 파악할수 있으며, 소통을 시각적으로 볼 수 있다. 문제를 낸 서..