코딩일지 218

20220914 파이썬 과제

1. 계산기 심화 num1 = input('첫 번째 숫자를 입력 : ') num2 = input('두 번째 숫자를 입력 : ') class Calc: def __init__(self, num1, num2): self.num1 = num1 self.num2 = num2 def plus(self): try: result = int(self.num1) + int(self.num2) return result except ValueError: # int로 변환하는 과정에서 에러가 발생했을 떄 print(f"{num1} 혹은 {num2}은(는) 숫자가 아닙니다.") except Exception as e: # 위에서 정의하지 않은 에러가 발생했을 때(권장하지 않음) print(f"예상하지 못한 에러가 발생했습니다...

20220913 TIL

오늘의 한 일 python 강의 4일차 클래스 활용하기 과제 백준 알고리즘 문제 풀이 - 정리 및 복습 python 강의 4일차 Python 심화 class에 대한 이해 class란? 클래스를 선언하는것은 과자 틀을 만드는 것이고, 선언된 과자틀(class)로 과자(instance)를 만든다고 생각하면 됩니다. 선언 후 바로 사용되는 함수와 다르게 클래스는 인스턴스를 생성하여 사용하게 됩니다. class 내부에 선언되는 메소드는 기본적으로 self라는 인자를 가지고 있습니다. self는 클래스 내에서 전역 변수와 같이 사용됩니다. # 용어 정리 - 인스턴스(instance) : class를 사용해 생성된 객체 - 메소드(method) : 메소드란 클래스 내에 선언된 함수이며, 클래스 함수라고도 한다. -..

python 백준 알고리즘 1316번: 그룹 단어 체커

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 내 제출 n = int(input()) group_word = 0 for _ in range(n): word = input() error = 0 for index in range(len(word)-1): # 인덱스 범위 생성 : 0부터 단어개수 -1까지 if word[index] != word[index+1]: # 연달은 두 문자가 다른 때, new_word = w..

python 백준 알고리즘 2941번: 크로아티아 알파벳

https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 내 제출 croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] # 크로아티아 알파벳 리스트 word = input() for i in croatia : word = word.replace(i, '*') # input 변수와 동일한 이름의 변수 print(len(word)) 예제는 무조건 크로아티아 알파벳으로..

python 백준 알고리즘 5622번: 다이얼

https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 내 제출 dial = ['ABC','DEF','GHI','JKL','MNO','PQRS','TUV','WXYZ'] word = input() time = 0 for unit in dial : for i in unit: # alpabet 리스트에서 각 요소를 꺼내서 한글자씩 분리 for x in word : # 입력받은 문자를 하나씩 분리 if i == x : # 두 알파벳이 같으면 time += dial.index(unit) +3 # time = time + index +3 pri..

python 백준 알고리즘 2908번: 상수

https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 내 제출 num1, num2 = input().split() num1 = int(num1[::-1]) # [::-1] : 역순 num2 = int(num2[::-1]) print(num1) if num1 > num2 else print(num2) 입력받은 두 개의 숫자를 역순으로 바꾸어 비교하는 문제였다. 처음에는 str으로 만들어 [2] [1] [0] 순으로 역순으로 정렬시켜 비교하는 방법을 썼는데 너무 번..

python 백준 알고리즘 1152번: 단어의 개수

https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 내 제출 word = input().split() print(len(word)) 단어를 공백을 기준으로 끊어 받아서 단어의 길이(갯수)를 출력. 한번에 하면 print(len(input.split()))

python 백준 알고리즘 1157번: 단어 공부

https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 내 제출 word = input().upper() # 대문자로 고정 ex) word = BAAA word_list = list(set(word)) # 입력받은 문자열에서 중복값을 제거 ex) word_list = ['B', 'A'] cnt_list = [] for x in word_list : # x = B, A cnt = word.count(x) cnt_list.append(cnt) # count 숫자를 리스트에 append e..

python 백준 알고리즘 2675번: 문자열 반복

https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 내 제출 n = int(input()) for _ in range(n): # n만큼 테스트케이스 돌리기 cnt, word = input().split() text = '' for i in word: text += int(cnt) * i # cnt만큼 문자열 곱해서 텍스트 출력 print(text) * 중첩 반복문을 이용해 n개만큼 테스트케이스를 돌리고 / 반복횟수만큼 각 문자열 글자를 곱..

python 백준 알고리즘 10809번: 알파벳 찾기

https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 내 제출 word = input() alphabet = list(range(97,123)) # 아스키코드 알파벳 소문자(a~z) 숫자 범위 for i in alphabet : print(word.find(chr(i))) find함수와 chr함수를 처음 써봐야하는 문제라 감이 잡히지 않아서 구글링을 할 수밖에 없는 문제였다 chr() : 아스키코드에 해당하는 숫자를 문자열로 변환시킨다...