본문 바로가기

코딩테스트166

[ 파이썬(python) ] 백준 10820 - 문자열 분석 📍 백준 10820 - 문자열 분석 백준 10820 - 문자열 분석 ⚡️ 나의 풀이 문자열 n개가 몇 번째까지인지 모르기 때문에 try except를 사용했다.(except EOFError) 소문자: islower(), 대문자: isupper(), 숫자: isdigit(), 공백: else 각 count누적 while True: try: lower_case, upper_case, number, blank = 0, 0, 0, 0 for i in input(): if i.islower(): lower_case += 1 elif i.isupper(): upper_case += 1 elif i.isdigit(): number += 1 else: blank += 1 print(lower_case, upper_ca.. 2021. 6. 17.
[ 파이썬(python) ] 백준 11723 - 집합 📍 백준 11723 - 집합 백준 11723 - 집합 ⚡️ 나의 풀이 add와 remove 조건에서 중복된 경우는 무시한다는 조건을 보아 set자료형을 사용했다. 그런데, 정답을 제출하니까 keyError가 떴었다 원인을 찾아보다가 remove 함수 때문이었는데, 값이 없는 경우에 remove를 사용하게 되면 keyError가 난다. 이럴 때는 discard함수를 사용하자. 값이 없는 상태에서 discard를 사용해도 에러가 나지 않는다. 또, empty는 빈 집합으로 바꿔야 하는데 그냥 set()으로 초기화해줘도 되지만 clear 함수를 사용해줘도 된다. 시간 복잡도는 크게 차이가 없었다. import sys input = sys.stdin.readline empty_set = set() def add.. 2021. 6. 16.
[ 파이썬(python) ] 백준 5086 - 배수와 약수 📍 백준 5086 - 배수와 약수 백준 5086 - 배수와 약수 ⚡️ 나의 풀이 배수와 약수의 관계를 파악하는 문제다. 기준을 너무 첫 번째 숫자로만 잡아서 생각이 고착되어있던 것 같다. 나의 풀이는 다음과 같다. 두 수를 대소비교한다. a b일 때는 a를 기준으로 약수를 구하고 b가 a의 약수와 같다면 배수(multiple)이고 반복문을 다 돌았는데도 찾지 못하면 neither이다. a == b인 경우는 없다. 이렇게 안 해도 다른 사람은 더욱 쉽게 구현했다. a % b == 0이면 a >= b이고 (이때, a != b), a는 b의 배수(multip.. 2021. 6. 16.
[ 파이썬(python) ] 2차원 행렬 시계, 반시계 방향으로 90도 뒤집기 📍 2차원 행렬 시계, 반시계 방향으로 90도 뒤집기 크기가 n * m인 2차원 arr배열이 있을 때, 시계, 반시계 방향으로 90도 뒤집는 방법을 알아보자. 2가지 방법이 있는데, 반복문, zip을 사용하는 방법이 있다. # 시계방향으로 90도 뒤집기 n, m = 4, 6 arr = [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24]] temp = [[0] * m for _ in range(n)] # 1. 반복문 for i in range(m): for j in range(n): temp[i][j] = arr[n-1-j][i] # 2. zip함수 arr = list(map(list, z.. 2021. 6. 15.
[ 파이썬(python) ] 2차원 행렬 상하, 좌우 반전하기 📍 2차원 행렬 상하, 좌우 반전하기 크기가 n * m인 2차원 arr배열이 있을 때, 상하 좌우 반전하는 방법을 알아보자. 2가지 방법이 있는데, 반복문, 문자열 슬라이싱을 사용하는 방법이 있다. # 상하 반전 n, m = 4, 6 arr = [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24]] temp = [[0] * m for _ in range(n)] # 1. 반복문 for i in range(n): temp[i] = arr[n-1-i] # 2. 문자열 슬라이싱 arr = arr[::-1] 👉🏽 19 20 21 22 23 24 13 14 15 16 17 18 7 8 9 10 11 .. 2021. 6. 15.