skinOptions.hljs
Programmers / 하샤드 수 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 하샤드 수 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12947/solution_groups?language=python3 나의 풀이 def solution(x): new_x = str(x) sum = 0 for i in new_x: sum += int(i) if x % sum == 0: return True else: return False
Programmers / 콜라츠 추측 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 콜라츠 추측 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12943 나의 풀이 def solution(num): cnt = 0 while num > 1: if num % 2 == 0: num = num/2 cnt += 1 elif num % 2 == 1: num = num*3 + 1 cnt += 1 if cnt == 500: cnt = -1 break return cnt 문제의 조건대로만 작성하면 쉽게 풀 수 있다. 다른 풀이 def collatz(num): for i in range(500): num = num / 2 if num % 2 == 0 else num*3 + 1 if num == ..
Programmers / 정수 내림차순으로 배치하기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 정수 내림차순으로 배치하기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12933 나의 풀이 1 def solution(n): n = list(str(n)) n.sort(reverse = True) return int("".join(n)) 나의 풀이 2 def solution(n): n = list(str(n)) n.sort(reverse = True) res = 0 for i in range(len(n)): res = res*10 + int(n[i]) return res
Programmers / 문자열 내 p와 y의 개수 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 문자열 내 p와 y의 개수 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12916 나의 풀이 def solution(s): p_cnt = 0 y_cnt = 0 s = s.upper() for i in range(len(s)): if s[i] == 'P': p_cnt += 1 elif s[i] == 'Y': y_cnt += 1 if p_cnt == y_cnt: return True else: return False count 를 이용해서도 풀 수 있을 거 같다
Programmers / 소수찾기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 소수 찾기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12921 나의 풀이 def solution(n): ch = [0] * (n+1) cnt = 0 for i in range(2,n+1): if ch[i] == 0: cnt += 1 for j in range(i,n+1,i): ch[j] = 1 return cnt 다른 풀이 def solution(n): num=set(range(2,n+1)) for i in range(2,n+1): if i in num: num-=set(range(2*i,n+1,i)) return len(num) ※ 알아야 할 것 - set함수를 이용해서도 풀 수 있다
Programmers / 약수의 개수와 덧셈 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 약수의 개수와 덧셈 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/77884 나의 풀이 #약수의 개수를 세는 함수 def count(x): cnt = 0 for i in range(1,x//2+1): if x % i == 0: cnt += 1 return cnt #약수가 짝수인지 홀수인지 정리하고 출력하는 함 def solution(left,right): arr_cnt = [] res = [] for i in range(left,right+1): arr_cnt.append(count(i)) res.append(i) for i in range(len(arr_cnt)): if arr_cnt[i] %..
문제 / 점수계산 / Python
·
coding test - python/기본기 문제
문제 제목: 점수계산 점수계산 OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기 로 하였다. 1번 문제가 맞는 경우에는 1점으로 계산한다. 앞의 문제에 대해서는 답을 틀리다가 답이 맞는 처음 문제는 1점으로 계산한다. 또한, 연속으로 문제의 답이 맞는 경우에서 두 번째 문제는 2점, 세 번째 문제는 3점, ..., K번째 문제는 K점으로 계산한다. 틀린 문제는 0점으로 계 산한다. 예를 들어, 아래와 같이 10 개의 OX 문제에서 답이 맞은 문제의 경우에는 1로 표시하고, 틀린 경 우에는 0으로 표시하였을 때, 점수 계산은 아래 표와 같이 계산되어, 총 점수는 1+1..
문제 / 주사위 게임 / Python
·
coding test - python/기본기 문제
문제 제목: 주사위 게임 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게 임이 있다. 규칙(1) 같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다. 규칙(2) 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)*100원의 상금을 받게 된다. 규칙(3) 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)*100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3*100으로 계산되어 1,300원을 받게 된 다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2*1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그 중 가장 큰 값이..
문제 / 뒤집은 소수 / Python
·
coding test - python/기본기 문제
문제 제목: 뒤집은 소수 N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력 한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다. 뒤집는 함수인 def reverse(x) 와 소수인지를 확인하는 함수 def isPrime(x)를 반드시 작성하 여 프로그래밍 한다. ▣ 입력설명 첫 줄에 자연수의 개수 N(3 0: t = x % 10 x = x//10 res = res*10 + t return res 그래서 자릿수합을 구할 때 사용했던 방식처럼 while문을 이용하여 수를 뒤집어주었다. 그 다음 소수 출력에서도 오류가 나왔었는데.....
문제 / 자릿수의 합 / Python
·
coding test - python/기본기 문제
문제 제목: 자릿수의 합 N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요. ▣ 입력설명 첫 줄에 자연수의 개수 N(3max: tot = max #자릿수끼리의 합이 최대인 수를 저장 res = x #최대인 수의 원래 값을 저장 print(res) while문을 이용하여 10으로 나눈 나머지 값을 더하고, x에는 10으로 나눈 몫을 반환하면서 자릿수끼리의 합을 구하였다. 이 부분은 다른 풀이에서와 마찬가지로 for문을 이용하여 함수부분을 다르게 바꿀 수 있다. def digit_sum(x): #자릿수끼리 더하는 함수 sum = 0 fo..
문제 / 소수 개수 출력하기 (에라토스테네스 체) / Python
·
coding test - python/기본기 문제
문제 제목: 소수 개수 출력하기 (에라토스테네스 체) 자연수 N이 입력되면 1부터 N까지의 소수의 개수를 출력하는 프로그램을 작성하세요. 만약 20이 입력되면 1부터 20까지의 소수는 2, 3, 5, 7, 11, 13, 17, 19로 총 8개입니다. 제한시간은 1초입니다. ▣ 입력설명 첫 줄에 자연수의 개수 N(2
문제 / 정다면체 / Python
·
coding test - python/기본기 문제
문제 제목: 정다면체 두 개의 정 N면체와 정 M면체의 두 개의 주사위를 던져서 나올 수 있는 눈의 합 중 가장 확 률이 높은 숫자를 출력하는 프로그램을 작성하세요. 정답이 여러 개일 경우 오름차순으로 출력합니다. ▣ 입력설명 첫 번째 줄에는 자연수 N과 M이 주어집니다. N과 M은 4, 6, 8, 12, 20 중의 하나입니다. ▣ 출력설명 첫 번째 줄에 답을 출력합니다. ▣ 입력예제 4 6 ▣ 출력예제 5 6 7 나의 풀이 1 N, M = map(int,input().split()) cnt=[] for i in range(N+M+1): #가장 큰 눈 끼리 더했을 때의 수만큼 리스트를 늘려줌 cnt.append(0) for i in range(1,M+1): for j in range(1,N+1): cnt..