728x90

프로그래밍/python 17

[python] 백준 11908 카드 (sorted(list 정렬))

문제 승현이는 앞면과 뒷면이 있는 카드 n장을 가지고 있습니다. 각 카드의 앞면에는 1 이상 2222 이하의 정수가 적혀 있으며, 이 수는 카드마다 서로 다릅니다. 각 카드의 뒷면에는 동물 그림이 그려져 있으며, 이 그림 역시 카드마다 서로 다릅니다. 승현이는 카드들을 바닥에 뒷면이 보이도록 일렬로 늘어 놓고, 차례대로 1 이상 n 이하의 자연수 번호를 붙였습니다. 이 중 i번 카드의 앞면에 적혀 있는 수를 ci로 둡시다. 승현이는 바닥에 카드가 정확히 한 장 남을 때까지 아래와 같은 행동을 반복합니다. 승현이는 마음에 드는 서로 다른 카드 두 장을 앞면이 보이도록 뒤집어 봅니다. 승현이는 앞면에 더 작은 수가 적혀 있는 카드를 주머니 속에 넣고, 더 큰 수가 적혀 있는 카드는 다시 바닥에 뒷면이 보이도..

[python] 백준 2475 검증수

문제 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다. 예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다. 학습 코드 a,b,c,d,e=map(int,input().split()) print((a**2+b**2+c**2+d**2+e**2)%10) 2475번: 검증수 (acmicpc.net) 2475번: 검증수 컴퓨터를 제조하는 회사..

[python] 백준 10953 A+B-6

문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. A와 B는 콤마(,)로 구분되어 있다. (0 < A, B < 10) 학습 코드 #10953 num=int(input()) for i in range(num): a,b=map(int,input().split(',')) print(a+b) 10953번: A+B - 6 (acmicpc.net) 10953번: A+B - 6 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net

[python] 백준 5543 상근날드

문제 상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다. 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다. 햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다. 햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오. 학습 코드 #9625 hamberger=[] drink=[] for i in range(3): ham_price=int(input()) hamberger.append(ham_price) for i in range(2): drk_price=int(input()) drink.append(drk_price) print(min..

[python] 백준 1009 분산처리

문제 재용이는 최신 컴퓨터 10대를 가지고 있다. 어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고, 10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다. 1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... , 10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ... 총 데이터의 개수는 항상 a^b개의 형태로 주어진다. 재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다. 이를 수행해주는 프로그램을 작성하라. 학습 처음에 문제를 우습게 보고 이런식으로 라이브러리를 이용하여 코드를 작성하면 해결할 수 있을것이라 생각했다. 그러나 7,100..

[python] 백준 15552 빠른 A+B sys.stdin.readline()

문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다. P..

[python] 백준 1330 두 수 비교하기

문제 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. 학습 처음 input 함수만 사용했을 때 자꾸 틀린 결과가 출력되었다. 10과 2를 입력했을 때 2가 10보다 더 크다고 출력되는 식이었다. 이유를 찾아보니 input으로 숫자를 입력받을 때는 처음 type이 str로 지정된다는 것이었다. 따라서 int로 형변환을 해줘야 한다. 하나하나 형변환을 하기 번거로우니 map함수를 사용하는 것이 편리하다. a,b = map(int, input().split()) a,b=input().split() 코드 a,b = map(int, input().split()) if a>b: print('>') elif b>a: print('

[python] 백준 2941 크로아티아 알파벳

문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 학습 replace 함수 replace(찾을문자,바꿀문자,바꿀횟수), 공백일시 끝까지 탐색 ptrhon 오랜만에 하려니 하나도 기억이 안난다.. for i in lists = lists에 들어있는 문자를 하나씩 꺼냄 = i 코드 lists=['..

[학교/파이썬/20.06.22] 과제2

과제 2는 딕셔너리, tkinter 등 꽤 심화된 내용이 들어가서 과제를 하는데도 스토리빌드를 짜야하는(?) 마냥 생각없이 써내려갈 수 는 없었습니다. 이번 과제 역시 교수님께서 "두근두근파이썬"에서 5문제를 선정하셨습니다. 교수님께서 제시한 문제입니다. -9장 2번-9장 8번-10장 6번-11장 5번-13장 1번9장 2번주사위를 던져 나오는 값의 빈도를 계산하고 출력하는 프로그램입니다. random모듈을 활용한 가장 기본적인 문제라고 할 수 있죠 이 문제는 작년 겨울방학때 이미 C언어로 구현해본 적이 있어서 어렵지 않게 해낼 수 있었습니다. import random counters=[0,0,0,0,0,0] for i in range(1000): dice=random.randint(1,6) if dice..

[학교/파이썬/20.05.04] 과제1

제가 수강했던 과목의 교수님께서는 매주 간단한 파이썬 퀴즈를 내주셨습니다. 매주 내주시는 퀴즈 외에 중간고사 전 주, 기말고사 전 주에 난이도가 있는 과제를 총 두 번 내주셨는데 주 교재인 "두근두근파이썬" 에서 문제를 골라 푸는 방식이였습니다. 교수님께서 제시한 문제입니다. -4장 연습문제 5번-4장 연습문제 8번-5장 연습문제 4번-5장 연습문제 7번-6장 연습문제 12번4장 연습문제 5번기호([])와 중간의 삽입할 문자열(python)을 입력하면 [python] 이런식으로 출력하라는 문제입니다. userA,userB=input("기호를 입력하시오: ") userC=input("중간에 삽입할 문자열을 입력하세요: ") print(userA+userC+userB) 처음에 조금 어렵게 생각하여 list...

728x90