본문 바로가기

반응형

알고리즘/python

(246)
[python/파이썬] 백준 1297 TV 크기 [문제 출처] https://www.acmicpc.net/problem/1297 1297번: TV 크기 김탑은 TV를 사러 인터넷 쇼핑몰에 들어갔다. 쇼핑을 하던 중에, TV의 크기는 그 TV의 대각선의 길이로 나타낸 다는 것을 알았다. 하지만, 김탑은 대각선의 길이가 같다고 해도, 실제 TV의 크기는 www.acmicpc.net [문제 풀이] TV의 대각선 길이와 TV의 높이와 너비의 비가 주어졌을 때, 실제 높이와 너비를 구하는 문제이다. 높이와 너비의 비를 통해 대각선의 비를 구하고, 이를 통해 실제 높이와 너비를 구한다. 문제에서 높이나 너비가 소수점이 나올 경우 내림을 하여 출력하라고 하였으므로, int()나 math.floor()을 사용해주어야 한다. int()를 사용한 것이 조금 더 빠르며,..
[python/파이썬] 백준 1225 이상한 곱셈 [문제 출처] https://www.acmicpc.net/problem/1225 1225번: 이상한 곱셈 첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는 음이 아닌 정수이다. 수가 0인 경우에는 0만 주어지며, 그 외의 경우 수는 0으로 시작하지 않는다. www.acmicpc.net [문제 풀이] 두 개의 수가 주어졌을 때, 각 자리별로 곱해서 합을 구하는 문제이다. 예를 들어 12x45 라면 일반적으로는 10x4 + 10x5 + 2x4 + 2x5로 계산하지만 이 문제에서는 1x4 + 1x5 + 2x4 + 2x5 로 계산한 결과를 출력해야 한다. 🧠소스 코드1 - 시간 초과 > 단순하게 문자열로 두 입력을 받아서 이중 for문으로 계산해 보았으나 역시나 시간 초과가 발..
[python/파이썬] 백준 1357 뒤집힌 덧셈 [문제 출처] https://www.acmicpc.net/problem/1357 1357번: 뒤집힌 덧셈 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev( www.acmicpc.net [소스 코드] 파이썬의 slice를 이용하면 쉽게 뒤집을 수 있으며, slice를 하기 위해서는 문자열로 입력을 받아야 하며 덧셈을 할 때만 int형으로 바꾸어 준다. #1357 x, y = input().split() result = str(int(x[::-1]) + int(y[::-1])) print(int(result[::-1]))
[python/파이썬] 백준 1292 쉽게 푸는 문제 [문제 출처] https://www.acmicpc.net/problem/1292 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net [문제 풀이] 수열은 1부터 시작해서 1개의 1, 2개의 2, 3개의 3... 이런 식으로 이어진다. 이렇게 수열이 주어질 때, a번째부터 b번째까지의 구간에서의 합을 구하는 문제이다. 일단 b번째 까지의 수열을 만든 후에 a번째(index는 a-1이 된다.)까지의 합을 sum()을 이용해 구하여 출력한다. #1292 a, b = map(int, input().split()) sq = [] for i in..
[python/파이썬] 백준 3004 체스판 조각 [문제 출처] https://www.acmicpc.net/problem/3004 3004번: 체스판 조각 상근이는 3003번에서 동혁이가 발견한 체스판을 톱으로 자르려고 한다. 상근이는 체스판을 최대 N번 자를 수 있으며, 변에 평행하게만 자를 수 있다. 또, 자를 때는 체스판의 그 변의 한쪽 끝에서 www.acmicpc.net [소스 코드] 사각형을 가로 세로로 잘랐을 때 가장 조각이 많이 나올 때의 조각의 수를 구하는 문제이다. 한 방향으로 n번 자른다면 조각은 n+1개가 생긴다. 가로로 n번 세로로 m번 자르게 되면 조각은 (n+1) * (m+1) 개가 생성된다. 가장 많은 조각이 나오는 경우는 n번을 자른다고 할 때, 절반은 가로로 절반은 세로로 자를 때이다. n이 짝수라면 절반 나눠서 가로 세로..
[python/파이썬] 백준 1247 부호 [문제 출처] https://www.acmicpc.net/problem/1247 1247번: 부호 총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1 ≤ N ≤ 100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거 www.acmicpc.net [소스 코드] 단순 사칙연산 문제이지만 readline을 사용하지 않고 input()으로만 입력을 받게 되면 시간초과가 나오므로 주의가 필요하다. #1247 import sys input = sys.stdin.readline for _ in range(3): n = int(input()) s = 0 for i in range(n): s += int(in..
[python/파이썬] 백준 1145 적어도 대부분의 배수 [문제 출처] https://www.acmicpc.net/problem/1145 1145번: 적어도 대부분의 배수 첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다. www.acmicpc.net [문제 풀이] 다섯 개의 자연수가 주어질 때, 이 수들 중 적어도 세 개의 수의 배수가 되는 수 중에 가장 작은 수를 구하는 문제이다. 주어진 자연수의 배수가 찾기 위해서 while문을 통해 1씩 수를 증가시키며 확인한다. 시작하는 수는 주어진 수 중에 가장 작은 수에서부터 시작한다. 그 후 1씩 증가시키며 주어진 수들로 나눠지는지 확인한 후 나눠진다면 cnt 값을 증가시켜 cnt 값이 3 이상일 때 while문을 멈추고 해당하는 수를 출력한다. num = list(m..
[python/파이썬] 백준 1223 주사위 [문제 출처] https://www.acmicpc.net/problem/1233 1233번: 주사위 지민이는 주사위 던지기 게임을 좋아하여 어느 날 옆에 있는 동호를 설득하여 주사위 던지기 게임을 하자고 하였다. 총 3개의 주사위가 있다. 그리고 이 주사위는 각각 S1(2 ≤ S1 ≤ 20), S2(2 ≤ S2 www.acmicpc.net [문제 풀이] 세 개의 주사위 S1, S2, S3가 있고, 각 주사위에 몇까지의 숫자가 적혀있는지 입력으로 주어진다. 만일 3 2 3이라고 주어지면 S1 주사위는 1부터 3까지의 숫자가, S2는 1부터 2까지, S3는 1부터 3까지의 숫자가 적혀있다. 이 주사위들을 굴려서 나올 수 있는 모든 경우의 수를 따져보고 각 경우의 합을 구했을 때 가장 자주 나오는 합을 구하는..

반응형