관리 메뉴

솜씨좋은장씨

[SW_Expert_Academy] 5688번 세제곱근을 찾아라 (Python) 본문

Programming/코딩 1일 1문제

[SW_Expert_Academy] 5688번 세제곱근을 찾아라 (Python)

솜씨좋은장씨 2020. 3. 18. 04:28
728x90
반응형

코딩 1일 1문제 41일차!

작심 3일로 끝날것 같았던 문제 풀이가 41일차까지 왔습니다.

오늘의 문제는 세제곱근을 찾아라입니다.

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

이 문제는 입력 받은 수가 세제곱의 수면 세제곱근의 값을 출력하고 그렇지 않으면 -1을 출력하는 문제입니다.

 

Solution

loop_num = int(input())

pow3_dic = {}

for i in range(pow(10, 6) + 1):
    pow3_dic[pow(i, 3)] = i
    
keys = pow3_dic.keys()

for i in range(loop_num):
    input_num = int(input())
    
    if input_num in keys:
        print("#{} {}".format(i+1, pow3_dic[input_num]))
    else:
              print("#{} {}".format(i+1, -1))

Solution 풀이

먼저 입력받는 수의 값은 1부터 10^18 사이의 값입니다.

이 수의 세제곱근 값의 범위는 1부터 10^6 입니다.

이에 우리는 1부터 10^6까지 세제곱의 수를 만들어 그값을 key로 하고 해당 index의 값을 value로 하는 dictionary형태로 미리 저장한 후에

입력 받은 값이 dictionary의 key값에 들어있다면 value값을 출력하도록

그렇지 않으면 -1을 출력하도록 하였습니다.

 

 

SOMJANG/CODINGTEST_PRACTICE

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments