본문 바로가기

분류 전체보기

(41)
2024.7.8 백준(Python) 1874 스택 수열 스택 수열 문제스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다.1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다. 이를 계산하는 프로그램을 작성하라.입력첫 줄에 n (1 ≤ n ≤ 100,000)이 ..
2024.7.7 백준(Python) 9933 민균이의 비밀번호 민균이의 비밀번호문제창영이는 민균이의 컴퓨터를 해킹해 텍스트 파일 하나를 자신의 메일로 전송했다. 파일에는 단어가 한 줄에 하나씩 적혀있었고, 이 중 하나는 민균이가 온라인 저지에서 사용하는 비밀번호이다.파일을 살펴보던 창영이는 모든 단어의 길이가 홀수라는 사실을 알아내었다. 그리고 언젠가 민균이가 이 목록에 대해서 얘기했던 것을 생각해냈다. 민균이의 비밀번호는 목록에 포함되어 있으며, 비밀번호를 뒤집어서 쓴 문자열도 포함되어 있다.예를 들어, 민균이의 비밀번호가 "tulipan"인 경우에 목록에는 "napilut"도 존재해야 한다. 알 수 없는 이유에 의해 모두 비밀번호로 사용 가능하다고 한다.민균이의 파일에 적혀있는 단어가 모두 주어졌을 때, 비밀번호의 길이와 가운데 글자를 출력하는 프로그램을 작성하..
2024.7.5 백준(Python) 2033 반올림 반올림 문제정수 N이 주어져 있을 때 이 수가 10보다 크면 일의 자리에서 반올림을 하고, 이 결과가 100보다 크면 다시 10의 자리에서 반올림을 하고, 또 이 수가 1000보다 크면 100의 자리에서 반올림을 하고.. (이하 생략) 이러한 연산을 한 결과를 출력하시오.입력첫째 줄에 정수 N이 주어진다. (0 ≤ N ≤ 99,999,999)출력첫째 줄에 위와 같은 연산을 한 결과를 출력하시오.예제 입력 1 15예제 출력 1 20예제 입력 2 446예제 출력 2 500 정답 코드num = input() # 사용자로부터 숫자를 입력받습니다.len_index = len(num) - 1 # 입력된 숫자의 자릿수를 계산합니다.count = 1 # 반올림을 할 자릿수를 나타내는 변수입니다. 초기값은 1로 설..
2024.7.4 백준(Python) 1145 적어도 대부분의 배수 적어도 대부분의 배수문제다섯 개의 자연수가 있다. 이 수의 적어도 대부분의 배수는 위의 수 중 적어도 세 개로 나누어 지는 가장 작은 자연수이다.서로 다른 다섯 개의 자연수가 주어질 때, 적어도 대부분의 배수를 출력하는 프로그램을 작성하시오.입력첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다.출력첫째 줄에 적어도 대부분의 배수를 출력한다.예제 입력 1 30 42 70 35 90예제 출력 1 210예제 입력 2 1 2 3 4 5예제 출력 2 4예제 입력 3 30 45 23 26 56예제 출력 3 1170예제 입력 4 3 14 15 92 65예제 출력 4 195 정답 코드list1 = list(map(int, input().split())) # 사용자로부터 입..
2024.7.4 백준(Python) 1373 2진수 8진수 2진수 8진수  문제2진수가 주어졌을 때, 8진수로 변환하는 프로그램을 작성하시오.입력첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.출력첫째 줄에 주어진 수를 8진수로 변환하여 출력한다.예제 입력 1 11001100예제 출력 1 314  정답 코드# 사용자로부터 입력받은 이진수 문자열num_2 = input()# 입력받은 이진수 문자열의 길이Len_num2 = len(num_2)# 3의 배수가 아닌 경우, 왼쪽에 '0' 또는 '00'을 추가하여 문자열의 길이를 맞춰줍니다.if Len_num2 % 3 == 2: num_2 = '0' + num_2if Len_num2 % 3 == 1: num_2 = '00' + num_2# 변환된 8진수를 저장할 리스트num_..
2024.6.27 백준(Python) 4344 평균은 넘겠지 평균은 넘겠지 스페셜 저지다국어문제대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.입력첫째 줄에는 테스트 케이스의 개수 C가 주어진다.둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.출력각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 정답과 출력값의 절대/상대 오차는 10-3이하이면 정답이다.예제 입력 1 복사55 50 50 70 80 1007 100 95 90 80 70 60 503 70 90 803 70 90 819 100 99 98 97 96..
2024.6.27 백준(Python) 1924 2007년 2007년문제오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.입력첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.출력첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다.예제 입력 1 1 1예제 출력 1 MON예제 입력 2 3 14예제 출력 2 WED예제 입력 3 9 2예제 출력 3 SUN예제 입력 4 12 25예제 출력 4 TUE 정답 코드# 사용자로부터 월과 일을 공백으로 ..
1971C Clock and Strings C. Clock and Stringstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere is a clock labeled with the numbers 1">11 through 12">1212 in clockwise order, as shown below.In this example, (a,b,c,d)=(2,9,10,6)">(a,b,c,d)=(2,9,10,6)(𝑎,𝑏,𝑐,𝑑)=(2,9,10,6), and the strings intersect.Alice and Bob have four distinct integers a">a𝑎, b">b𝑏, c">c𝑐, ..