본문 바로가기

반응형

전체 글

(253)
[python/파이썬] 백준 1032 명령 프롬프트 [문제 출처] https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net [문제 풀이] 모든 문자열이 일치하는 부분과 그렇지 않은 부분을 구분하여 그 패턴을 출력하는 문제이다. 따라서 하나의 문자열을 기준으로 두고 나머지를 비교한다. result에 첫 번째 문자열을 저장한다. 이때 주의할 점은 문자열은 수정이 불가능하기에 리스트 형태로 받아주어야 한다. 문자열로 받아도 인덱스로 글자 하나하나에 접근은 가능하지만, result[0] = '?'와 같은 ..
[python/파이썬] 백준 1009 분산처리 [문제 출처] https://www.acmicpc.net/problem/1009 1009번: 분산처리 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000) www.acmicpc.net [소스 코드1 - 시간 초과] 10대의 컴퓨터가 있고, a^b개의 데이터가 있다. 1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터,... 11번 데이터는 1번 컴퓨터가 처리한다고 할 때 가장 마지막 데이터를 처리하는 컴퓨터 번호를 출력하는 문제이다. 문제에서도 알 수 있듯이 데이터의 개수의 일의 자릿수가 컴퓨터 번호를 결정한다. 즉 데이터 개수를 10으로 나눴을 때 나머지(0~9)와 동..
[python/파이썬] 백준 1205 등수 구하기 [문제 출처] https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net [소스 코드] 문제를 읽을 때 놓치는 내용이 없도록 꼼꼼하게 읽고 코드를 작성해야 한다. #1205 n, score, p = map(int, input().split()) if n == 0: print(1) else: rank = list(map(int, input().split())) if n == p and rank[-1] >= score: print..
[python/파이썬] 백준 1094 막대기 [문제 출처] https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net [문제 풀이] 64, 32, 16, 8, 4, 2, 1의 길이를 가진 막대기가 있을 때, 몇 개의 막대를 이어 붙였을 때 x를 만들 수 있는지 물어보는 문제이다. 결국 이진법으로 x를 표현했을 때 1이 몇개 있는지 묻는 문제로 이진수로도 풀 수 있다. #1094 x = int(input()) stick = [64, 32, 16, 8, 4, 2, 1] cnt = 0 for i in..
[python/파이썬] 백준 1049 기타줄 [문제 출처] https://www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net [문제 풀이] N개의 기타 줄을 사려고 할 때 최소한의 비용을 구하는 문제이다. M개의 브랜드의 기타 줄 가격이 주어지며, 각각 6개 패키지 가격과 1개 낱개 가격이 주어진다. 2가지 경우로 나눠볼 수 있는데, 사야 하는 기타 줄의 수가 6개보다 많을 경우와 6개 이하인 경우이다. 6개 이하라면 낱개 n개를 사거나, 남더라도 6개 패키지를 사야 한다. 따라서 패키지 가격 중에 가..
[python/파이썬] 백준 1026 보물 [문제 출처] https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net [문제 풀이] S의 최솟값을 구하는 문제이다. S는 정수 배열 A와 B의 각 원소를 곱한 값의 합이다. S의 값을 작게 하기 위해서는 큰 수는 작은 수와 곱하면 된다. 따라서 두 배열 중 하나는 오름차순으로, 하나는 내림차순으로 정렬하여 곱해준다. 문제에서는 배열 A만 재배열을 해야한다고 하지만 두 배열을 모두 정렬해도 결과는 같고, 같은 과정을 하는 것이므로 상관없다. #1..
[python/파이썬] 백준 9625 BABBA [문제 출처] https://www.acmicpc.net/problem/9625 9625번: BABBA 상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했 www.acmicpc.net [문제 풀이] 버튼을 누르면 A는 B로 바뀌고, B는 BA로 바뀐다. 즉 k번째의 A와 B의 개수는 k-1번째의 A와 B의 개수에 따라 달라진다. k-1번째에 A가 몇 개든지 모두 B로 바뀌기에 A의 개수는 k-1번째의 B의 개수에 따라 달라진다. B의 개수만큼 A가 생기므로, k번째 A의 개수는 k-1번째의 B의 개수와 동일하다. B의 개수는 A의 개수와 B의 개수 모두 중요한데, k..
[python/파이썬] 백준 5622 다이얼 [문제 출처] https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net [소스 코드] #5622 phone = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ'] d = input() result = 0 for i in range(len(d)): for p in phone: if d[i] in p: result += (phone.index(p) + 3) print(result)

반응형