본문 바로가기

반응형

전체 글

(253)
[python/파이썬] 백준 1331 나이트 투어 [문제 출처] https://www.acmicpc.net/problem/1331 1331번: 나이트 투어 나이트 투어는 체스판에서 나이트가 모든 칸을 정확히 한 번씩 방문하며, 마지막으로 방문하는 칸에서 시작점으로 돌아올 수 있는 경로이다. 다음 그림은 나이트 투어의 한 예이다. 영식이는 6× www.acmicpc.net [문제 풀이] 입력으로 주어진 경로가 나이트 투어인지 아닌지 출력하는 문제이다. 나이트 투어란 3가지 조건을 만족한다. 1) 나이트가 정상적으로 이동했는가? > 나이트는 상하좌우 중 한 칸, 대각선 중 한 칸 움직일 수 있다. 칸의 번호로 따지면, 가로로 1칸 세로로 2칸 차이 나거나, 가로로 2칸 세로로 1칸 차이나는 경우이다. 2) 나이트가 모든 칸에 방문했는가? > 나이트가 모든 ..
[python/파이썬] 백준 1417 국회의원 선거 [문제 출처] https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net [문제 풀이] 국회의원 선거에서 사람들이 누굴 뽑을지 알 수 있다면, 다솜이가 당선되기 위해서 몇 명의 마음을 돌려야 하는지를 구하는 문제이다. 입력으로 후보의 수와 각 후보의 득표 예정 수가 주어진다. 다솜이는 1번 후보이며, 다른 사람들로부터 몇 표를 가져와야 당선될지 구해야 한다. while문으로 다솜이의 득표수가 가장 많은지 확인하고 그렇지 않다면, 가장 많은 표를..
[python/파이썬] 백준 1453 피씨방 알바 [문제 출처] https://www.acmicpc.net/problem/1453 1453번: 피시방 알바 첫째 줄에 손님의 수 N이 주어진다. N은 100보다 작거나 같다. 둘째 줄에 손님이 들어오는 순서대로 각 손님이 앉고 싶어하는 자리가 입력으로 주어진다. www.acmicpc.net [문제 풀이] n명이 사람들에 대해 자신이 앉고자 하는 자리의 번호가 주어질 때, 자신이 원하는 번호에 앉지 못하는 사람의 수를 구하는 문제이다. 앞에서 다른 사람이 말한 번호를 뒤에서도 말하게 되면 나중에 말한 사람은 자리에 앉을 수 없다. n명의 손님에 대한 자리 번호를 리스트로 저장하고, 이 리스트를 set으로 바꾸어 중복을 제거한 후에 원소의 개수의 차이를 구하면 되는 문제이다. #1453 n = int(inpu..
[python/파이썬] 백준 2083 럭비 클럽 [문제 출처] https://www.acmicpc.net/problem/2083 2083번: 럭비 클럽 입력 받은 각 회원에 대해 이름과 분류를 출력한다. 성인부 회원이면 'Senior', 청소년부 회원이면 'Junior'를 출력한다. www.acmicpc.net [소스 코드] import sys input = sys.stdin.readline while True: name, age, weight = input().split() if name == '#': break if int(age) > 17 or int(weight) >=80: print(name + " Senior") else: print(name + " Junior"
[python/파이썬] 백준 1267 핸드폰 요금 [문제 출처] https://www.acmicpc.net/problem/1267 1267번: 핸드폰 요금 동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다. www.acmicpc.net [문제 풀이] 동호가 n번의 통화를 했을 때, 영식 요금제와 민식 요금제 중에 더 저렴한 요금제를 찾는 문제이다. 영식 요금제는 30초마다 10원씩 청구되고, 민식 요금제는 60초마다 15원씩 청구된다. - 영식 요금제 ~29s : 10원 30 ~ 59s : 20원 60 ~ 89s : 30원 ... - 민식 요금제 ~59s : 15원 60~ 119s : 30원 120 ~ 179s : 45원..
[python/파이썬] 백준 1075 나누기 [문제 출처] https://www.acmicpc.net/problem/1075 1075번: 나누기 첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다. www.acmicpc.net [문제 풀이] 100보다 큰 정수 N과, 100보다 작은 정수 F가 주어졌을 때, F로 N을 나눴을 때 나눠 떨어지도록 N의 마지막 숫자 2개를 바꾸고자 한다. 답이 여러 개 있을 수 있지만 그중에서 가장 작은 값을 구하는 문제이다. 가장 작은 값을 구해야 하기 때문에 가장 작은 값인 '00'부터 시작한다. 주어진 N의 마지막 숫자 2개를 바꾸기 위해서 100으로 나눴을 때 나머지를 N에서 빼주었다. 00에서 시..
[python/파이썬] 백준 1059 좋은 구간 [문제 출처] https://www.acmicpc.net/problem/1059 1059번: 좋은 구간 [9, 10], [9, 11], [9, 12], [10, 11], [10, 12] www.acmicpc.net [문제 풀이] 집합 S와 n이 주어졌을 때, n을 포함하는 구간 중 집합 S에 포함된 정수가 포함되지 않은 구간을 구하는 문제이다. 조건을 만족하기 위해서는 집합 S를 오름차순으로 정렬하여, 집합 S의 원소 중에서 구간의 하한선과 상한선이 될 정수를 고르고 그 범위 내에서 구간을 정해야 한다. 그렇게 하한선과 상한선이 정해지면 구간의 개수를 세야 하는데, 경우는 2가지로 나눠질 수 있다. 구간의 시작이 n보다 작은 경우와, n인 경우이다. 예를 들어 보자 S = [4, 8, 13, 24, 30..
[python/파이썬] 백준 1356 유진수 [문제 출처] https://www.acmicpc.net/problem/1356 1356번: 유진수 첫째 줄에 수 N이 주어진다. 이 수는 2,147,483,647보다 작거나 같은 자연수이다. www.acmicpc.net [문제 풀이] 어떤 10진수가 주어졌을 때, 그 수를 앞과 뒤 이렇게 두 부분으로 나누었을 때, 각 부분의 자릿수들의 곱이 서로 같을 때 이 수를 유진수라고 한다. 입력으로 주어진 수가 유진수인지 아닌지 판별하는 코드를 작성하는 문제이다. 예를 들어 1221 같은 경우 12/21로 나눈다면, 1x2 = 2x1이므로 유진수이다. 1236의 경우 123/6으로 나눈다면, 1x2x3 = 6이므로 유진수이다. 주어진 수가 유진수인지 아닌지 알기 위해서는 앞뒤로 나누는 모든 경우의 수에 대해서,..

반응형