본문 바로가기
728x90
반응형

전체 글141

[파이썬] 백준 2164번 카드2 문제 풀이 python 문제 설명 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 남는 카드는 4가 된다. N이 주어졌을 때, 제일 마지막에 남게 되는 카드를 구하는.. 2024. 2. 6.
[파이썬] 백준 2108번 통계학 문제 풀이 python 문제 설명 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 문제 링크 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는.. 2024. 2. 5.
[파이썬] 백준 1978번 소수 찾기 문제 풀이 문제 설명 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 문제 링크 https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 입출력 예시 프로그램 코드 def is_prime(a): #소수 구하는 함수 if a == 1: #숫자가 1이면 0 반환 return 0 for i in range(2, int(a ** 0.5) + 1): # 2부터 숫자 제곱근까지 반복 if a % i == 0: #나눠지면 소수가 아니므로 0 반환 return 0 return 1 N = int(input()) #N.. 2024. 2. 5.
[파이썬] 백준 1966번 프린터 큐 문제 풀이 문제 설명 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중요도가.. 2024. 2. 5.
[파이썬] 리스트로 큐 자료구조 만들기 Queue 큐 Queue 란? 큐는 선형 자료구조로, 먼저 저장한 자료가 먼저 출력되는 FIFO (First In First Out) 의 구조를 이룹니다. 예를 들어 설명을 해보겠습니다. 큐를 이용하는 방법은 간단하게 2가지가 있습니다. 1. 자료 추가 2. 자료 뽑기 [] 빈 큐가 있다고 가정해봅시다. 1, 2, 3 자료를 차례대로 추가를 하면 큐는 [1, 2, 3] 이런 형태가 됩니다. 2. 자료 뽑기 자료를 뽑을 때에도 추가된 순서대로 뽑기가 됩니다. 자료를 3개를 뽑으면 차례대로 1, 2, 3이 나옵니다. 리스트로 큐 만들기 1 파이썬에서 리스트로 큐를 만들기 위한 방법은 많지만 이 글에서는 간단한 2가지 방법을 소개합니다. 첫번째 방법은 자료를 추가할 때는 리스트의 맨 뒤에서부터 추가를 하고 자료를 뽑을 .. 2024. 2. 5.
[파이썬] 백준 1929번 소수 구하기 문제 풀이 문제 설명 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 문제 링크 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 입출력 예시 프로그램 코드 import math def is_prime(a): #소수 구하는 함수 if a == 1: return 0 for i in range(2, int(math.sqrt(a)) + 1): #2부터 그 숫자의 제곱근까지 검사 if a % i == 0: return 0 return 1 M, N = map(int, input().s.. 2024. 2. 5.
[파이썬] 제곱근 루트 구하기 ** math sqrt() 파이썬을 이용한 특정 숫자의 제곱근을 구하는 방법에 대해서 알아보도록 하겠습니다. 제곱 연산자 ** 파이썬에서는 제곱을 구할 수 있는 연산자인 ** 연산자를 제공합니다. 특정 숫자의 제곱을 구하고 싶다면 a = 10 print(a ** 2) #실행 결과 : 100 숫자 ** 2 를 이용하면 특정 숫자의 제곱수를 구할 수 있습니다. 이를 이용하면 특정 숫자의 제곱근도 구할 수 있습니다. a = 100 print(a ** 0.5) #실행 결과 : 10.0 숫자 ** 0.5 를 이용하면 특정 숫자의 제곱근을 구할 수 있습니다. math 라이브러리 sqrt() 함수 이용 파이썬에서는 수학 연산을 위한 math 라이브러리를 제공합니다. 이를 이용하면 특정 숫자의 제곱근을 구할 수 있습니다. import math .. 2024. 2. 5.
[파이썬] 백준 1920번 문제 풀이 수찾기 (이분 탐색, 이진 탐색) 문제 설명 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 문제 링크 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 입출력 예시 프로그램 코드 N = int(input()) #N 입력 num = input().split() #N개 숫자 입력 li = [] #입력 받은 숫자 리스트에 저장 for i in num:.. 2024. 2. 5.
[파이썬] 백준 1874번 문제 풀이 스택 수열 문제 설명 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다. 1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다. 이를 계산하는 프로그램을 작성하라. 문제 링크 https://www.acmicpc.ne.. 2024. 2. 5.
[파이썬] 백준 1676번 문제 풀이 팩토리얼 0의 개수 문제 설명 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. 문제 링크 https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 입력 예시 출력 예시 프로그램 코드 N = int(input()) #입력 받기 fac = 1 for i in range(2, N + 1):#팩토리얼 구하기 fac *= i str_fac = str(fac)#팩토리얼을 문자열로 바꾸기 cnt = 0 for i in range(len(str_fac)):#뒤에서부터 0 개수 세기 if str_fac[-1 - i] != '.. 2024. 2. 4.
728x90
반응형