본문 바로가기

<TIL>/BaekJoon_문제풀이

(27)
[1920번]_수 찾기 문제제목: 프린터 수 찾기 문제난이도: 하 유형: 해시, 배열, 구현, 이분탐색 적정풀이시간: 20분 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. 출력 M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 입력1 출력1 5 4 1 5 2 3 5..
[10930번]_SHA-256 문제제목: SHA-256 문제난이도: 하 유형: 해시, 구현 적정풀이시간: 15분 문제 문자열 S가 주어졌을 때, SHA-256 해시값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 문자열 S가 주어진다. S는 알파벳 대문자와 소문자, 그리고 숫자로만 이루어져 있으며, 길이는 최대 50이다. 출력 첫째 줄에 S의 SHA-256 해시값을 출력한다. 입력1 출력1 Baekjoon 9944e1862efbb2a4e2486392dc6701896416b251eccdecb8332deb7f4cf2a857 풀이 아이디어 파이썬의 기본 라이브러리인 hashlib을 이용한다. 여기서, SHA256이란. 블록체인에서 가장 많이 채택하여 사중중인 것으로, 256비트로 구성되어 있으며, 64자리 문자열을 반환한다. 즉, 2의 ..
[1966번]_프린터 큐 문제제목: 프린터 큐 문제난이도: 하 유형: 큐, 구현, 그리디 적정풀이시간: 25분 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인..
[2902번]_음계_easy 문제제목: 음계 문제난이도: 하 유형: 배열, 구현 적정풀이시간: 15분 zzt님의 12496803번 소스 코드 (acmicpc.net) print({"2345678":"ascending","7654321":"descending"}.get(input()[2::2],"mixed")) 역시 세상을 넓고 천재는 많구나. 이렇게 짧은 한 줄의 코드로 해결할 생각을 하다니 대단한 것 같다. 나의 풀이 def check(): input_li = input() pitches = list(map(int,input_li.split(' '))) ascending = True descending = True for num in range(len(pitches)-1): if pitches[num] < pitches[num+1..
5단계(실습1)_10817번_세 수 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256MB 102572 45955 40166 46.520% 문제 세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) 출력 두 번째로 큰 정수를 출력한다. 예제 예제 입력 1 예제 출력 1 20 30 10 20 예제 입력 2 예제 출력 2 30 30 10 30 예제 입력 3 예제 출력 3 40 40 40 40 예제 입력 4 예제 출력 4 20 10 10 10 문제풀이 list = list(map(int,input().split())); list.sort(); print(list[-2]); list..
5단계(실습1)_5543번_상근날드 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128MB 27215 17323 15903 65.479% 문제 상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다. 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다. 햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다. 햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오. 입력 입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가격은 1..
5단계(실습1)_10039번_평균 점수 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128MB 43670 28011 25293 65.635% 문제 상현이가 가르치는 아이폰 앱 개발 수업의 수강생은 원섭, 세희, 상근, 숭, 강수이다. 어제 이 수업의 기말고사가 있었고, 상현이는 지금 학생들의 기말고사 시험지를 채점하고 있다. 기말고사 점수가 40점 이상인 학생들은 그 점수 그대로 자신의 성적이 된다. 하지만, 40점 미만인 학생들은 보충학습을 듣는 조건을 수락하면 40점을 받게 된다. 보충학습은 거부할 수 없기 때문에, 40점 미만인 학생들은 항상 40점을 받게 된다. 학생 5명의 점수가 주어졌을 때, 평균 점수를 구하는 프로그램을 작성하시오. 입력 입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점..
4단계(while문)_1110번_더하기 사이클 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 128MB 58922 40732 34659 48.2736% 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. ..
4단계(while문)_10951번_A+B(4) _종결조건이 없는 경우 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256MB 88610 30957 26750 36.353% 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 예제 예제 입력 1 예제 출력 110 1 1 2 3 3 4 9 8 5 2 2 5 7 17 7 문제풀이 import sys while True: try: A,B = map(int,sys.stdin.readline().split()); print(A+B); except: break; 개념 1. sys.st..
4단계(while문)_10952번_A+B(5) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256MB 63660 33739 30094 54.104% 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 입력의 마지막에는 0 두 개가 들어온다. 출력 각 테스트 케이스마다 A+B를 출력한다. 예제 예제 입력 1 예제 출력 110 1 1 2 3 3 4 9 8 5 2 0 0 2 5 7 17 7 문제풀이 import sys while True: A,B = map(int,sys.stdin.readline().split()); if A == 0 or B ==..