본문 바로가기

알고리즘

데일리 알고리즘 230118

728x90

데일리 알고리즘 230118


프로그래머스, 과일 장수

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

📄 나의 코드

# score 내림차순 정렬 score.sort(reverse=True)
# 몇 상자 만들 수 있는지 len(score) // m
# 상자별 사과를 판매할 때 최대로 받을 수 있는 금액 answer

def solution(k, m, score):
    answer = 0
    score.sort(reverse=True)
    for i in range(len(score)//m):
        answer += min(score[m*i:m*(i+1)])*m
    return answer

 

📌 원하는 만큼(m) 반복되는 리스트 추출

score[m*i:m*(i+1)]

# score[:4]
# score[4:8]
# score[8:12]

해당 코드는 프로젝트 pagenation 구현했어야 할때 사용했던 코드라 익숙하다.


프로그래머스, 정수 제곱근 판별

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

📄 나의 코드

def solution(n):
    if(float(n**0.5).is_integer()):
        return (int(n**0.5)+1)*(int(n**0.5)+1)
    else:
        return -1

 

📌 실수가 정수인지 아닌지

float(34.0).is_integer()

실수의 소수점 이하가 0이면 정수이므로 이를 판별하기 위해 다음과 같은 내장함수를 사용한다.

 

📌 공부 할만한 코드

n = 121
print((n**0.5) % 1 == 0) # True

m = 3
print((m**0.5) % 1 == 0) # False

소수점이하가 0인지, 0이 아닌지는 1로 나눴을때 나머지가 0인지, 아닌지로 구분할 수 있었다!!

'알고리즘' 카테고리의 다른 글

데일리 알고리즘 230120  (0) 2023.01.22
데일리 알고리즘 230119  (0) 2023.01.19
DP, Dynaminc Programming  (0) 2023.01.17
데일리 알고리즘 230117  (0) 2023.01.17
데일리 알고리즘 230116  (0) 2023.01.16