분류 전체보기 219

[Baekjoon/Python] 10809번: 알파벳 찾기 - 효과는 굉장했다!

10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net SOLUTION S = input() alphabet = "abcdefghijklmnopqrstuvwxyz" for i in alphabet: if i in S: print(S.index(i), end = ' ') # index()함수를 사용해 인덱스 몇번째 알파벳인지 파악 else: print(-1, end = " ")

[Baekjoon/Python] 8958번: OX퀴즈 - 효과는 굉장했다!

8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net SOLUTION import sys for _ in range(int(sys.stdin.readline())): case = sys.stdin.readline().rstrip() answer = 0 count = 1 for i in range(len(case)): if case[i] == 'O': answer += count count += 1 if case[i] == 'X': count = 1 # 'X'일 경우 count값 1로 초기화 pr..

[Baekjoon/Python] 3052번: 나머지 - 효과는 굉장했다!

3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net SOLUTION list = [] for i in range(0,10): list.append(int(input()) % 42) list = set(list) # set() 함수를 이용해 중복되는 수 삭제 print(len(list)) ※ set(집합) set은 수학에서 이야기하는 집합과 비슷합니다. 순서가 없고, 집합안에서는 unique한 값을 가집니다. 그리고 mutable 객체입니다. 중복된 값은 자동으로 중복이 제거 됩니다.

[Baekjoon/Python] 2920번: 음계 - 효과는 굉장했다!

2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net SOLUTION num = list(map(int, input().split())) if num == [1,2,3,4,5,6,7,8]: print("ascending") elif num == [8,7,6,5,4,3,2,1]: print("descending") else: print("mixed")

[Baekjoon/Python] 2908번: 상수 - 효과는 굉장했다!

2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net SOLUTION 슬라이싱 활용 n1, n2 = input().split() if n1[::-1] > n2[::-1]: print(n1[::-1]) else: print(n2[::-1]) List Comprehension을 활용하면 한 줄로 표현이 가능하다! print(max([int(num[::-1]) for num in input().split()]))

[Baekjoon/Python] 2675번: 문자열 반복 - 효과는 굉장했다!

2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net SOLUTION T = int(input()) for i in range(T): R, S = input().split() text = "" for i in S: text += i*int(R) # i를 R만큼 반복 print(text)

[Baekjoon/Python] 2577번: 숫자의 개수 - 효과는 굉장했다!

2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net SOLUTION a = int(input()) b = int(input()) c = int(input()) result = str(a*b*c) # count() 함수를 사용하기 위해 str type으로 형 변환 for i in range(10): print(result.count(str(i))) # 0 ~ 9까지 숫자가 각각 몇 개 있는지 출력

[Baekjoon/Python] 2562번: 최댓값 - 효과는 굉장했다!

2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net SOLUTION n_list = [int(input()) for i in range(9)] print(max(n_list), n_list.index(max(n_list))+1, sep = "\n") # 인덱스는 0부터 시작하므로 +1 해줌