본문 바로가기

작업

(140)
백준 2675(문자열 반복) 파이썬(python) 해결 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 출력 각 테스트 케이스에 대해 P를 출력한다. #백준 2675 cas..
백준 10809(알파벳 찾기) 파이썬(python) 해결 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. #백준 10809 string = input() invalue = [-1]*26 #a~z 인덱스 -1로 초기화 a..
백준 1065(한수) 파이썬(python) 해결 문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. def decide(num): if num >99: #백의 자리인 경우 numA = num//100 #백의 자리 수 numB = num%100//10 #십의 자리 수 numC = num%10 #일의 자리 수 if (numB-numA) == (numC-numB): #등차수열이라면 return 1 else: re..
백준 4673(셀프 넘버) 파이썬(python) 해결 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자릿수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런 식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ... n을 d(n)의 생성자라고..
백준 4344(평균은 넘겠지) 파이썬(python) 해결 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. #백준 4344 count = int(input()) total = [0]*count #출력 결과 저장 리스트 grade = [] #입력 값 저장 리스트 #2차원 리스트, 입력 값들을 모두 저장 for co in range(count): gr..
백준 2577(숫자의 개수) 파이썬(python) 해결 문제 세 개의 자연수 A, B, C가 주어질 때 A×B×C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오. 예를 들어 A = 150, B = 266, C = 427이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다. 입력 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. #백준 2577 abc = [] #입력 된 수 저장 count = [0]*10 #리스트 10개의 공간 0 초기화 for i in range(3): abc.append(int(inpu..
백준 2523, 2446, 10996(별 찍기 13, 9, 21) 파이썬(python) 해결 #백준 2523 num = int(input()) #별이 최대로 출력되는 줄까지 for j in range(1, num+1): print("*"*j) #별이 최대로 출력된 줄 밑부터 for k in range(num-1, 0, -1): print("*"*k) 처음 별의 개수는 입력 값(5)의 2배에서 1뺀 수만큼, 그 다음 줄부터는 첫 별의 개수(5*2-1 = 9)에서 2씩 줄어듭니다. (9 -> 7 -> 5 -> 3 ->1) 이후부터는 다시 별의 개수가 2씩 증가합니다. #백준 2446 num = int(input()) #가운데의 별 1개 출력되는 곳까지 for j in range(num): print(" "*j + "*"*(num*2-j*2-1)) #그다음 아래 부분 for k in range(num..
백준 10817(세 수) 파이썬(python) 해결 문제 세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) 입력이 세 수로 고정되어 있기 때문에 중간 값이 곧 두 번째로 큰 수입니다. 이를 위해서는 입력된 세 수가 정렬되어 있어야 합니다. 그래서 sort() 함수로 입력된 수를 정렬합니다. 그다음, 통계 모듈인 statistics의 median() 함수를 사용하여 중간 값을 뽑아냅니다. ※ 사실 정렬이 된 상태에서 2번째 인덱스의 값을 출력하면 됩니다. 그저 import 해보고 싶어서 통계 모듈을 사용한 것입니다. #백준 10817 import statistics #median() 함수 사용 value =..