반응형 SMALL 컴퓨터/알고리즘 공부(c++,python)16 정수 제곱근 판별[프로그래머스 레벨1][파이썬] 이 문제는 자연수 n에 대해서 n의 제곱근(루트)이 또다른 자연수이면 그 자연수에 1을 더하고 제곱을 한 값을 리턴하거나, n의 제곱근(루트)이 또다른 자연수가 아니면(유리수면) -1을 반환하는 문제입니다. math 모듈의 sqrt함수를 써서 제곱근을 구한뒤 자연수에 1을 나눈 나머지는 항상 0이된다는 성질을 이용해서 문제를 해결하였습니다. # 정수 제곱근 판별 # 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. # n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. import math def solution(n): answer = 0 q = math.sqrt(n) if q%1==.. 2023. 5. 15. 자연수 뒤집어 배열로 만들기[프로그래머스 레벨1][파이썬] 이 문제는 자연수를 입력받아서 역수로 취한뒤 배열로 나타내는 문제 입니다. n자리의 자연수를 1개씩 처리해야 할 때는 for문을 돌리는 방법도 있지만 str(n)을 사용하여 문자열로 나타내면 인덱스접근이 가능해서 편리합니다. 문자열로 바꾼뒤 리스트 뒤에서 부터 접근해서 answer리스트에 넣어주면 됩니다. # 자연수 뒤집어 배열로 만들기 # 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. def solution(n): answer = [] s = str(n) for i in range(len(s)-1,-1,-1): answer.append(int(s[i])) return answer 2023. 5. 15. 문자열 내 p와 y의 개수[프로그래머스 레벨1][파이썬] 이 문제는 대소문자 구분없이 문자열 내에 p와 s의 개수를 찾고 개수가 같으면 true, 다르면 false를 찾아보는 문제입니다. 문자열.count('알파벳') 함수를 이용하면 문제를 쉽게 해결할 수 있습니다. count함수는 소문자, 대문자 2번을 시행하여야 합니다. # 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. # 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. def sol.. 2023. 5. 15. 나머지가 1이 되는 수 찾기[프로그래머스 레벨1][파이썬] 이 문제는 n을 함수 파라미터로 입력받고 n보다 작은 자연수 중에 나머지가 1로 떨어지는 자연수 중에 가장 작은 값을 찾는 문제 입니다. for문을 2부터 돌아서 n과 나눈다음 나머지가 1이 나오면 그 숫자가 가장 작은 값이 됩니다. 2부터 나눠야 하는 이유는 n이 3부터 시작하기 때문입니다.(3부터 나누면 X) #자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. def solution(n): answer = 0 answer=2 for i in range(2,n): if n%i==1: answer=i break return answer 2023. 5. 15. 이전 1 2 3 4 다음 반응형 LIST