본문 바로가기
TIL

99 클럽 TIL 세번째

by double-step 2024. 3. 27.
728x90
반응형
SMALL

오늘의 문제 

 

비기너 문제 첫번째

 

문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

제한 사항
n은 1이상, 50000000000000 이하인 양의 정수입니다.
입출력 예
n return
121 144
3 -1
입출력 예 설명
입출력 예#1
121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다.

입출력 예#2
3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다.

 

간단히 말해서 제곱인지 아닌지 판단해서 다른 결과를 나타내라는 말이다.

정답은 간단했다.

 

 

def solution(n):
    for i in range(1, int(n**0.5) + 1):  # 올바른 루프 구문 및 조건
        if i * i == n:
            return (i + 1) ** 2  # 다음 정수의 제곱 반환
    return -1  # 완전제곱수를 찾지 못한 경우 -1 반환

다음은 미들러의 문제도 풀이 해보았다.

 

문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.

제한 조건
s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
입출력 예
s return
"1 2 3 4" "1 4"
"-1 -2 -3 -4" "-4 -1"
"-1 -1" "-1 -1"

 

이것도 간단 했다. 파이썬의 min,max 라이브러리를 사용하면 되었다 .

 

def solution(s):
    n = list(map(str,s.split()))
    n = list(map(int,n))
    return "{} {}".format(min(n),max(n))

 

공백을 기준으로 문자열을 나누고, 다시 정수형으로 바꾼 다음에 최소, 최댓값으로 찾아서 리스트 문자열로 출력하면 되었다. 조금씩 다시 코딩 패턴이 보이기 시작한다. 더 해야겠다.

728x90
반응형
LIST

'TIL' 카테고리의 다른 글

99클럽 7번째  (0) 2024.03.31
99클럽 TIL 6번째  (1) 2024.03.30
99클럽 다섯번째 TIL  (0) 2024.03.29
99 클럽 4일째 TIL  (0) 2024.03.28
99 클럽 TIL 1일  (1) 2024.03.25