알고리즘 풀이

문제 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import jav..
옵시디언으로 문제를 푸는데, 블로그 포스팅 할 때 프론트 매터가 올라오는 문제가 있어서 포스트를 분리하였다 그렇다고, 티스토리에서 수정하면 코드 블록이 일렬로 나오는 문제가 있어 진퇴양난의 상황이다 아무튼 1주차 문제는 구현 위주라 아직 어려움을 못느끼고 있다 재밌다! 문제 풀이 3일차 문제 n = int(input()) result = 0 operations = {'+': lambda x, m: x + m, '/': lambda x, m: x // m, '-': lambda x, m: x - m, '*': lambda x, m: x * m} for _ in range(n): x, v, m = input().split() result += operations[v](int(x), int(m)) print(..
결론을 먼저 말하자면, 배열과 리스트 간의 성능 차이는 사용 사례와 구현에 따라 다를 수 있으며, 종종 미미 할 수 있다 하지만, 자료구조 관점에서 리스트와 배열의 차이를 파악해보자 Intro. 궁금하더라 원래는 파이썬으로 알고리즘 문제를 풀었었는데, 자바로 풀게 되면서 궁금함을 느꼈다 이런 기초가 재밌더라 왠지 계속 글을 수정해 나가야겠다 실습 1. 데이터 읽기와 저장 비교 배열 쓰기 시간: 29.30 ms 리스트 쓰기 시간: 64.75 ms 배열 읽기 시간: 0.00 ms 리스트 읽기 시간: 0.01 ms 배열 쓰기 배열의 크기는 고정되어 있으므로, 쓰기 연산은 매우 빠릅니다. 리스트 쓰기 ArrayList는 동적으로 크기를 조정할 수 있으므로, 필요에 따라 내부 배열을 확장해야 할 수도 있습니다. ..
문제 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args){ try(BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))){ int t = Integer.parseInt(reader.readLine()); int[] input = Arrays.stream(reader.readLine().split(" ")).mapToInt(Integer::parseInt)...
구름톤 챌린지 1주차 우연히 구름톤 하는 것을 알게 되었는데 동기부여 받으면서 개발을 할 수 있다니 좋타! 실시간으로 몇명이 풀고 있고, 정답률까지 알려주니 힘이 불끈불끈! 한달 부셔보자! 보상 시크릿 세미나 : 인프랩 CTO 이동욱의 커리어여정과 취업과 성장에 대한 고민 스페셜 굿즈 : 티셔츠와 스티커 블록 갯수 5,10,18에 따라서 다르다 5 개 : 알고리즘 {먼데이} 챌린지 1 해설 강좌 10 개 : 구름톤 챌린지가 끝나고 해설 강좌 제공 18 개 : 오프라인 팀 챌린지 참여 티켓 구름 채용 우대 오프라인 팀 챌린지까지 완주한 사람들에게는 구름 채용 우대 혜택 우수 참여자는 빠른 채용 프로세스를 제안할거다 챌린지까지 일주일에 2번 이상 블로그에 구름 톤 챌린지 학습 일기를 남기고, 컨테이너 학습 ..
MOC: Index: 문제 3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다. 10진법 3x 마을에서 쓰는 숫자 10진법 3x 마을에서 쓰는 숫자 1 1 6 8 2 2 7 10 3 4 8 11 4 5 9 14 5 7 10 16 정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요. 풀이 class Solution { public int solution(int n) { int answer = 0; for (int i = 0; i < n; i++) { answer++; while (answer % 3 == 0 || String.valueOf(..
MOC: Index: 문제 비어있는 공집합 S가 주어졌을 때, 아래 연산을 수행하는 프로그램을 작성하시오. add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다. remove x: S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다. check x: S에 x가 있으면 1을, 없으면 0을 출력한다. (1 ≤ x ≤ 20) toggle x: S에 x가 있으면 x를 제거하고, 없으면 x를 추가한다. (1 ≤ x ≤ 20) all: S를 {1, 2, …, 20} 으로 바꾼다. empty: S를 공집합으로 바꾼다. 입력 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄..
MOC: Index: 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 출력 각 테스트 케이스마다 점수를 출력한다. 풀이 import java.util.Scanner; public cl..
MOC: Index: 문제 세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오. 예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다. 풀이 일단 파이썬 Dictionary를 사용하고, 모두 곱해서 string으로 변경해서 세고 출력하면 될거 같다 number = 1 for _ in range(3): number *= int(input()) number = str(number) count_digits = [0] * 10 for..
MOC: Index: 문제 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모든 인접한 두 방 사이의 거리는 같은 거리(거리 1)라고 가정하고 호텔의 정..
berom
'알고리즘 풀이' 카테고리의 글 목록 (5 Page)