Python
-
[Python] 프로그래머스 : 3진법 뒤집기코딩테스트/프로그래머스 2024. 7. 18. 14:12
[문제 풀기 전 생각한 부분]1. 10진법에서 3진법으로 어떻게 변환되나?2. n 을 3으로 나눈 나머지를 문자열 형태로 저장한 뒤 뒤집으면 된다.3. 저장한 문자열의 길이만큼 순회해서 곱하고 더해준다. [my_code]위 2번을 생각해볼 때 문자열을 따로 뒤집을 필요가 없다. 문자열을 저장할 때, 뒤집지 않아도 거꾸로 들어간다. n = 45rest = ''while n > 0: rest += str(n % 3) n = n // 3print(rest) # 0021 10진법에서 3진법으로 어떻게 바꿀 수 있을까?- 구현한 코드부터 보자 ! n = 45rest = ''while n > 0: rest += str(n % 3) n = n // 3number = 0# print(len(res..
-
[Python] 프로그래머스 : 최대공약수와 최소공배수코딩테스트/프로그래머스 2024. 7. 17. 20:36
[문제 풀기 전 생각한 부분] 1. 최대 공약수는 어떻게 구할까?# 더 큰 수에서 작은 수로 나누었을 때, 나누어 떨어 지는 경우 작은 수가 최대공약수이다.# 두 수를 나누었을 때, 나누어 떨어지지 않는 다면 # 두 수의 약수를 구한 뒤# 두 수의 약수 중 같은 숫자를 고른다.# 같은 숫자 중 가장 큰 수를 반환한다.2. 최소공배수는 어떻게 구할까?# 최소 공배수 구하는 방법# 두 수 중 더 큰 수를 작은 수로 나누었을 때, 안 나눠지는 경우# 두 수를 곱하는 수가 최소 공배수이다. # 두 수를 나누었을 때, 나누어진다면, 더 큰 수가 최소 공배수가 된다.# 두 수를 각각 무한히 곱했을 때, 나오는 수 중 가장 작은 수가 최소 공배수이다.[my_code] 1. 최대공약수n = 124m = 24bigger..
-
[Python] 프로그래머스 : 핸드폰 번호 가리기코딩테스트/프로그래머스 2024. 7. 16. 22:25
[문제 풀기 전 생각한 부분]1. 요구사항에는 없지만, 010-1234-5678 처럼 하이픈(-)이 들어간다면 어떻게 해야될까?2. 01012345678의 길이는 11 027778888의 길이는 9 총 두 가지 경우에 대해서 if 문으로 해보자. [my_code]1. 하이픈(-)이 들어간다면 replace 파이썬의 내장함수를 사용해서 제거를 해주자.phone_number = "02-777-8888"phone_number = phone_number.replace('-', '') # 027778888phone_number = "02-777-8888"phone_number = phone_number.replace('-', '')if len(phone_number) == 11: print('*'*7 +..
-
[Python] 프로그래머스 : 정수 제곱근 판별코딩테스트/프로그래머스 2024. 7. 16. 16:51
https://school.programmers.co.kr/learn/courses/30/lessons/12934 [문제 풀기 전 생각한 부분]1. n 이 주어졌을 때, n의 제곱근은 어떻게 구할까?2. n의 제곱근의 결과가 정수임을 어떻게 알까? [문제 풀기 전 생각한 부분에 대한 고민]* 고민 1# 제곱근 구하는 방법 1import mathn = 25n_root = math.sqrt(n) # 5# 제곱근 구하는 방법 2n = 25n_root = n ** (1/2) # 5 * 고민 2# 정수 판별하는 방법 1n = 25n_root = n ** (1/2)if n // n_root == n_root: print("n의 제곱근은 정수입니다.")else: print("n의 제곱근은 정수가 아닙니다.") ..
-
[Python] 프로그래머스 : 두 정수 사이의 합코딩테스트/프로그래머스 2024. 7. 16. 12:00
https://school.programmers.co.kr/learn/courses/30/lessons/12912?language=python3 [문제 풀기 전 생각한 부분] - 두 정수 a, b를 비교하여 더 큰 정수에서 1을 뺀 뒤(c라 가정) 세 정수를 더한다. [my_code]def solution(a, b): if a > b: return a + (a - 1) + b elif a [문제점]- 요구사항에서는 a,b 사이에 속한 모든 정수의 합을 리턴하는 함수 라고 나와있다. - 나의 문제는 "모든 정수"가 아닌 "a,b사이의 하나의 정수"만 더해서 틀렸다. [문제점 해결]def solution(a, b): start = min(a,b) end = max(a,b..
-
[Python] 구름 : 앵무새 꼬꼬코딩테스트/구름 2024. 6. 28. 12:14
문제 [문제 풀기 전 생각]1. for문과 if문으로 모음 확인 여부를 결정하자. [my code]N = int(input())vowels = 'aeiou'result1 = ''for i in range(N): sentences = input() for char in sentences: if char in vowels: result1 += char print(result1)# 입력 3hiherefather# 출력 결과ieeae[문제점][의도]1. 의도는 result1 값에 char이 하나씩 입력되면서 출력되야 하는 데 붙어서 나왔다. 2. 그 외 2가지 방법으로 더 시도해보았다. 결국 길어질 뿐이었지 같은 로직을 길게..썼을 뿐이라는 걸 깨달았다...3. 최종..
-
[Python] 백준 10,818 : 최소, 최대코딩테스트/백준 2024. 6. 19. 17:02
문제 [문제 풀기 전 생각한 부분]1. 코테는 보통 함수를 이용하니 함수를 이용해서 풀어보자2. 함수에 최대 최소를 출력하는 내장함수를 사용한다.[my_code]def minMax(nums): print(min(nums),max(nums))total = int(input())nums = map(int,input().split())minMax(nums)[문제점]1.처음에 iterable argument is empty 오류 [문제점 해결]1. list로 nums 를 받아보았다. def minMax(nums): print(min(nums),max(nums))total = int(input())nums = list(map(int,input().split()))minMax(nums) [왜 그럴지 더 ..
-
[Python] 구름 : 고장난 컴퓨터코딩테스트/구름 2024. 6. 12. 21:14
문제 [문제 풀기 전 생각한 부분]1. 마지막 코드 작성 이후 c초 동안 남았다가 2. c + 1 초 이후 모든 코드가 삭제됨. 3. 키보드를 총 N번 누른다. 4. 두 개의 입력을 사용자로부터 받는다 5. 하나는 입력할 코드 갯수이고 하나는 얼마 동안이나 그 코드를 유지할 것인가? [my_code]n, c = map(int, input().split())t = list(map(int, input().split()))cnt = 0 for i in range(n-1): if t[i+1] - t[i] [문제점] 1. 5초가 지나면 무조건 초기화 되어서 아무것도 안 남는 것이 아니다.2. 무조건 마지막꺼는 남아 있다. 그래서 고정적으로 cnt에 + 1 을 해줘야 된다. [문제점 해결]n, c =..