본문 바로가기

프로그래머스

프로그래머스 lv 0

 

가장 큰 수 찾기

정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.

def solution(array):
#def는 정의, solution은 함수의 이름
#array는 파이썬에서 리스트와 비슷하게 쓰임
#다른 점은 배열은 크기가 고정되어있고 같은 자료형만 받을 수 있음
	answer = []
    #가장 큰 값하고 큰 값의 인덱스를 넣을 빈 리스트 만들기 
    big_number = max(array)
    #가장 큰 값 max(리스트나 배열)함수 이용하기 
    answer.append(big_number)
    answer.append(array.index(big_number))
    #배열이나 리스트.index(값)
    return answer
#다른 사람의 풀이 참고하기 
def solution(array)
	return [max(array),array.index(max(array))]

 

<문법 공부>

1.인덱스 가져오기 

array.index(값)

2, 가장 큰 값 가져오기 

max(array)


 

배열 만들기 4

정수 배열 arr가 주어집니다. arr를 이용해 새로운 배열 stk를 만드려고 합니다.

변수 i를 만들어 초기값을 0으로 설정한 후 i가 arr의 길이보다 작으면 다음 작업을 반복합니다.

  • 만약 stk가 빈 배열이라면 arr[i]를 stk에 추가하고 i에 1을 더합니다.
  • stk에 원소가 있고, stk의 마지막 원소가 arr[i]보다 작으면 arr[i]를 stk의 뒤에 추가하고 i에 1을 더합니다.
  • stk에 원소가 있는데 stk의 마지막 원소가 arr[i]보다 크거나 같으면 stk의 마지막 원소를 stk에서 제거합니다.

위 작업을 마친 후 만들어진 stk를 return 하는 solution 함수를 완성해 주세요.

 

< 오답 노트  >

 

1. = 랑 == 헷갈리지 말기 

'같다'랑 '할당' 이랑 헷갈리지 말기 

 

2. i += 1과 같이 지속적으로 업데이트되며 반복 실행될때는 while 구문 쓰기 

while i < len(arr):
def solution(arr):
    stk = []
    i = 0
    while i < len(arr):  # 배열의 길이보다 작은 동안 반복
        if not stk:  # 스택이 비어 있으면
            stk.append(arr[i])  # 현재 요소를 추가
            i += 1  # i 증가
        elif stk[-1] < arr[i]:  # 스택의 마지막 값보다 현재 값이 크면
            stk.append(arr[i])  # 현재 요소를 추가
            i += 1  # i 증가
        else:  # 그렇지 않으면
            del stk[-1]  # 스택의 마지막 요소를 제거
    return stk

'프로그래머스' 카테고리의 다른 글

프로그래머스 lv 0  (0) 2024.10.12
프로그래머스 lv 0  (0) 2024.10.04
프로그래머스 lv 0  (0) 2024.10.03
프로그래머스 lv 0  (0) 2024.10.03