본문 바로가기
알고리즘 풀이

[algorithm] 프로그래머스: 점의 위치 구하기, 최댓값만들기

by 째깍단 2023. 4. 11.

답:  점의 위치 구하기

더보기
def solution(dot):
    if dot[0] > 0 and dot[1] > 0:
        return 1
    elif dot[0] < 0 and dot[1] > 0:
        return 2
    elif dot[0] > 0 and dot[1] < 0:
        return 4
    elif dot[0] < 0 and dot[1] < 0:
        return 3

 

다른사람의 풀이:

def solution(dot):
    quad = [(3,2),(4,1)]
    return quad[dot[0] > 0][dot[1] > 0]

 오잉... 해석이 필요하다 

 

 

문제 분석 및 해석

 

입력 : 숫자 2개짜리 배열

결과 : 정수 1,2,3,4

 

배열[0][1]에 따라

1234 돌려주는 것이 다를 것임

 

[0][1] +면 1

[0] -면 2

[1] -면 4

[0][1] -면 3

 

if문으로 검사하기  <<

0부터 검사해서 거르고 1검사하기..?

각각 검사해서 합치기

 

 

 

과정1.

 

무조건 요소가 2개인 리스트가 들어오므로,

if문으로 [0], [1]을 검사하고 and로 묶어 True값을 내고자했다.

 

if dot[0] > 0 and dot[1] > 0:
    return 1

 

 

 

새롭게 알게된 것

 

x,y = dot

list의 요소가 2개라는 것을 알고있으니 각각의 요소를 이렇게 지정하면 된다는 것을 알게되었다.

 

 


 

 

답:  최댓값 만들기

더보기
def solution(numbers):
    num_list = sorted(numbers, reverse=True)
    a = num_list[0]
    b = num_list[1]
    return a * b

 

 

문제 분석 및 해석

입력:

numbers = [1, 2, 3, 4, 5]

numbers2 = [0, 31, 24, 10, 1, 9]

출력: 숫자 2개를 곱한 정수

 

가장 큰 원소 1, 2를 곱해 최댓값을 리턴하기

이거 최빈값 뽑기랑 비슷한 것 같은걸?

 

1. sorted 써서 정리하고

2. 정리된대로 앞 혹은 뒤에서 두개 뽑고

3. 곱하면 되겠당

 

 

과정.

 

def solution(numbers):
    num_list = sorted(numbers, reverse=True)

 

이 내용을 print하면

[5, 4, 3, 2, 1]
[31, 24, 10, 9, 1, 0]

이렇게 내림차순으로 정리된 리스트가 나온다.

 

 

[0], [1]을 각각 변수에 지정하고 곱하여 반환하면 끝

 

a = num_list[0]
b = num_list[1]
return a * b

 

 

 

 

+ 그냥 곱해도 된다..!

+ 내림차순 정리할 것없이 reverse도 빼도 된다^^; 대신 [-1], [-2] 값을 곱해야겠지

+ sort를 쓴다면  numbers.sort()를 쓰면 된다 (변수설정X)