본문 바로가기

전체 글

[Java] 1476 날짜 계산 문제 문제 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 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이 된.. 더보기
[Java] 3085 사탕 게임 문제 문제 상근이는 어렸을 적에 "봄보니 (Bomboni)" 게임을 즐겨했다. 가장 처음에 N×N크기에 사탕을 채워 놓는다. 사탕의 색은 모두 같지 않을 수도 있다. 상근이는 사탕의 색이 다른 인접한 두 칸을 고른다. 그 다음 고른 칸에 들어있는 사탕을 서로 교환한다. 이제, 모두 같은 색으로 이루어져 있는 가장 긴 연속 부분(행 또는 열)을 고른 다음 그 사탕을 모두 먹는다. 사탕이 채워진 상태가 주어졌을 때, 상근이가 먹을 수 있는 사탕의 최대 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 보드의 크기 N이 주어진다. (3 ≤ N ≤ 50) 다음 N개 줄에는 보드에 채워져 있는 사탕의 색상이 주어진다. 빨간색은 C, 파란색은 P, 초록색은 Z, 노란색은 Y로 주어진다. 사탕의 색이 다른 인접한.. 더보기
[Java] 골드바흐의 추측 문제 문제 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 ≤.. 더보기
[Java] 1929 소수 구하기 문제 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 요약하자만 입력하는 M부터 N까지의 숫자 사이의 소수를 구하는 문제이다. 소수를 구하는 여러 방법이 있겠지만 에라토스테네스의 체를 활용해서 풀어보겠다. 더보기 에라토스테네스의 체? 수학에서 에라토스테네스의 체는 소수를 찾는 빠르고 쉬운 방법. 1. 2부터N까지모든수를써놓는다. 2. 아직지워지지않은수중에서가장작은수를찾는다. 3. 그수는소수이다. 4. 이제그수의배수를모두지운다. 5. 찾는 수의 배수가 N보다 커질 때.. 더보기
프레임워크 vs 라이브러리 개발자가 개발에 용이할 수 있도록 공통으로 사용될 수 있는 특정한 기능을 모듈화한 것들을 의미한다. 개발자가 자주 사용하는 클래스나 메소드를 모듈화 시키고 특정 위치에 불러내어 사용하는 것이 두 형태로 발전 된 것. 라이브러리 라이브러리란 개발자가 만든 클래스들의 나열로, 다른 프로그램들에서 사용할 수 있도록 제공하는 방식. 프레임워크 프레임워크는 뼈대나 기반구조를 뜻하며, 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' 이라 할 수 있다. 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야합니다. 객체 지향 개발을 하게 되면서 통합성, 일관성의 부족이 발생되는 문제를 해결할 방법중 하나라 할 수 있다. 프레임워크의 특징 특정 .. 더보기
[AWS 스터디모임] AWS Monitoring, Troubleshooting & Audits(2) AWS X - Ray 이전에 프로덕션에서의 디버깅 할 때 좋은 방식은 • 로컬에서 테스트하기 • 모든 위치에 로그 문 추가 • 운영 중 재배포한 뒤 로그를 보며 파악 핵심은 운영 환경에서는 디버깅이 까다롭다. 게다가 애플리케이션이 여러 개라고 한다면 CloudWatch를 사용하는 애플리케이션마다 로그 형식이 다르며 분석이 어렵다. X-Ray는 이러한 상황에서 애플리케이션에 대한 시각적인 분석을 제공한다. 애플리케이션에 요청을 수행하는 클라이언트 입장에서 요청이 얼마나 성공/실패하는지 확인하며 애플리케이션이 하는 작업들도 볼 수 있다. 장점을 살펴보자. 트러블 슈팅이 가능하고 병목 현상을 식별할 수 있다. 마이크로 서비스 아키텍쳐의 의존관계를 파악할수 있으며, 소통을 시각적으로 볼 수 있다. 문제를 낸 서.. 더보기
[AWS 스터디모임] AWS Monitoring, Troubleshooting & Audits(1) 개요 모니터링이 중요한 이유 우리는 AWS 컴포넌트를 이용해 코드 인프라를 자동으로 안전하게 구성한다. 애플리케이션을 배포하지만 사용자들은 어떻게 우리가 이것을 구성했는지는 관심이 없고 다만 문제없이 작동한다는 점만 중요할 뿐이다. 어떠한 상황에서도 고객 경험은 저하되면 안된다. 특히 회사에 연락을 하여 불만을 가지는 사용자가 나타난다는 점은 그리 좋은 결과는 아니다. 어떻게 하면 문제를 해결하고 예방할 수 있을까? 내부적으로는 아래와 같은 고민을 끝없이 해야한다. 문제가 발생하기 전 막을 수 있는가? 만약 발생해도 사용자가 발견하기 전 먼저 발견할 수 있는가? 성능과 비용을 모니터링할 수 있는가? 정지 패턴과 스케일링 방식에 대한 추이를 살펴볼 수 있는가? 그렇기 때문에 모니터링이 아주 중요하다고 할 .. 더보기
[AWS 스터디 모임] ElasticCache 생성해보기 ElastiCache를 aws 검색창에 검색하여 들어간다. 아래와 같은 화면이 보이고 지금 시작을 누르면 캐시 클러스터를 선택하라는 콤보 박스가 보인다. Redis와 Memcached 중 선택한다. 캐시 생성하기 Redis를 선택하면 아래와 같이 생성을 위한 설정 페이지가 등장한다. 애플리케이션 트래픽에 맞게 자동으로 관리해주는 서버리스 버전이 새로 등장했는데 설정을 확인해보기 위해 자체 캐시 설계를 눌러보자. 범용 설정, 클러스터 캐시, 백업 복원의 추가 설정이 생겼다. 클러스터 캐시 모드를 선택하면 클러스터 기능을 사용할 것이냐 아니냐 선택 등 세부적인 선택이 추가로 생기는 데 여기서는 간단한 생성 실습이기 때문에 간편한 생성을 고르고 구성 역시 가장 작은 데모버전으로 해보겠다. 간편한 생성 버전이라.. 더보기