문제 : https://www.acmicpc.net/problem/11866 요세푸스 문제를 풀기 위해서는 기본적인 '요세푸스 순열' 의 개념에 대해 알고 있어야 한다. n과 k가 자연수이고, k 출처 : https://ko.wikipedia.org/wiki/%EC%9A%94%EC%84%B8%ED%91%B8%EC%8A%A4_%EB%AC%B8%EC%A0%9C 위 개념적인 설명 후에 '(7,3) 요세푸스 순열은 {3,6,2,7,5,1,4}이며 4번째 위치한 사람이 마지막으로 제외되게 된다.'라는 예시가 나와있다. 위 예시는 백준 문제와 같다. 나는 위 예시부터 이해가 되지 않았다. 7개의 수가 있고 3번째 사람부터 제거를 한다는 것 알겠지만그건 별개로 저 순열은 왜 3,6,2,7,5,1,4 순서가..
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 100824 62611 53823 63.188% 문제 총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다. 출력 첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다. 풀이✔ 1️⃣ 문제 분석하기 N개의 정수를 입력 받는다. N개 만큼 정수를 입력한다 N개만큼 입력한 정수 중에 V가 몇 개인지 찾는다. 2️⃣ 요구 조건 구현하기 Buffered..
문제 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다 영수증에 적힌, 구매한 각 물건의 가격과 개수 구매한 물건들의 총 금액 을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자. 입력 첫째 줄에는 영수증에 적힌 총 금액 X가 주어진다. 둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 N이 주어진다. 이후 N개의 줄에는 각 물건의 가격 a와 개수 b가 공백을 사이에 두고 주어진다. 출력 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하면 Yes를 출력한다. 일치하..
문제 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받게..
안녕하세요 백준 11659 구간합 구하기 문제를 풀어보겠습니다. 11659번: 구간 합 구하기 4 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 문제풀이 1) 문제 분석하기 수의 개수, 합의 개수 횟수 최대 100,000 회 시간제한 0.5초 구간 합 공식 이용 해야함 구간 합 공식 이용하지 않을 시, 매번 계산을 해야 함으로, 시간을 초과하게 될 것이다. 보통 1억번 연산 = 1초 라고 생각하면 됨. 2) 요구조건 구현하기 N개의 수를 입력받음과 동시에 합 배열 생성하기 S[i] = ..
안녕하세요 코딩테스트 준비를 위해 꼭 알아야 하는 배열과 리스트에 대해서 정리해보겠습니다. 🚨 코딩테스트를 준비하실 분이라면 배열과 리스트는 무조건적으로 알아야지 진행을 할 수 없습니다. 위 자료구조를 알지 못한다면, 코딩 테스트 준비시 많이많이 힘들 수 있으므로 꼭 알고 가야 합니다. 배열이란? 메모리의 연속적인 공간에 값이 채워져 있는 형태의 자료구조이고 인덱스를 통해 값을 참조할 수 있다. 배열의 특징? 인덱스를 통해 값에 접근한다 새로운 값을 삽입하거나, 특정 인덱스 값 삭제하기 어렵다. 삽입,삭제를 하려면 주변 값을 이동시키는 과정이 필요합니다. 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기 변경 불가능 구조가 간단해서 코딩 테스트에서 제일 많이 사용합니다. 리스트란? 리스트..
안녕하세요 오늘으 알고리즘 문제를 풀다보면 꼭 알아야하는 시간복잡도에 대하여 알아보겠습니다 ✔ 실제 시간 복잡도를 정의하는 3가지 유형이 있습니다 💡 시간 복잡도 유형 빅-오메가(Big-Ω) = 최선일 때 연산 횟수 빅-세타(Big-θ) = 보통일 때 연산 횟수 빅-오(Big-O) = 최악일 때 연산 횟수 public class Ex { public static void main(String[] args) { //1~100사이의 랜덤값 선택 int randomNum = (int)(Math.random()*100); for (int i = 0; i 1,000,000,000,000 > 200,000,000(부적합) → 병합 정렬 ⇒ 1,000,000log(1,000,000) = 2,000,000 (적합) 이..
백준 2884 알람시계 1) 문제 설명 1) 입력 2) 출력 문제설명은 여기까지하고, 문제 요구 조건 및 풀이를 해보겠습니다. 문제 요구조건 1) 변수 설정 2) 입력 받기 (Sacnner사용) => 추후에 BufferReader로 바꾸기 3) 조건 주기 분이 45분 보다 작을시 시간을 -1 한다 시간이 0보다 작을 시 23으로 바꾼다. 코드 적용 public static void main(String[] args) { Scanner sc = new Scanner(System.in); int hour = sc.nextInt(); int min = sc.nextInt(); if(min < 45) { hour --; // 45보다 작을시 시간을 -1 min = 60-(45-min); if(hour < 0) ..