inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

10. 역수열(그리디)

질문

77

오이오

작성한 질문수 6

0

seq[5]이 0인 경우에만 1이 들어가고 만약 0이 아니면 seq[6]의 자리에 1이 들어가야 하는데, 이러한 로직이 어디서 구현되고 있는건지 잘 감이 안옵니다.

python 코딩-테스트

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 오이오님.

해당 문제의 핵심은 “역수열”을 구성하는 방법을 이해하는 것입니다. 다른 수열 문제와 달리 역수열은 특정 조건에 맞춰 수를 배치해야 하는데요, 이 과정에서 필요한 논리와 구현 방법이 혼동될 수 있습니다.

이전의 유사한 질문과 답변을 참고하실 수 있는 링크를 안내해드립니다:

그리고, 역수열을 구성하는 데 필요한 중요한 논리 설명을 포함하도록 하겠습니다:

  1. 리스트 초기화: seq 리스트를 초기화하여 모든 원소를 0으로 만들고 시작합니다.
  2. 위치 찾기: 주어진 조건에 맞춰 숫자를 seq 리스트의 적절한 위치에 배치합니다. 이 과정에서 특정 숫자가 0이 되는 순간에 주의해야 합니다.
  3. 숫자 배치: 만약 해당 위치가 아닌 다음 위치에 숫자를 배치해야 하는 경우, 인덱스를 계속 증가시키며 조건을 충족할 때까지 반복합니다.

예제 코드 참고:

n = 5
seq = [0] * n
a = [2, 1, 1, 0, 0]

for i in range(n):
    count = 0
    for j in range(n):
        if count == a[i] and seq[j] == 0:
            seq[j] = i + 1
            break
        elif seq[j] == 0:
            count += 1

print(seq)

위 코드에서 counta[i]와 같은지 확인하고, seq[j]가 0인 경우에만 값을 배치한다는 논리를 구현하고 있습니다. 이러한 방식으로 역수열을 구성하게 됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.

1

77

2

스택에서 ')'을 만나는 경우

0

78

3

문제가 어디있나요?

0

65

2

변수 or 함수명

0

61

1

침몰하는 타이타닉 문제 질문입니다

0

56

1

AA.py 책점 에러

0

57

1

오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.

0

111

2

5.동전분배하기 문제 밑에코드도 정답이될까요?

0

110

1

아나그램 비교 코드

0

116

2

AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.

0

160

2

문제 링크가있나여?

0

147

2

채점기 Time Limit Exceeded 오류 문의

1

163

2

동적계획법은 사용하는 문제

0

126

2

제 코드 좀 봐주세요

0

148

1

예외가 존재할 가능성?

0

97

1

3번이 안풀립니다

0

93

0

5번 틀림

0

114

0

오류원인?

0

98

0

리스트 선언

0

106

1

침몰하는 타이타닉(그리디) 문제 질문

0

109

1

알고리즘

0

69

1

코딩테스트

0

92

1

DFS 순서 질문드립니다.

0

126

2

left, right를 사용한 풀이법에 대한 질문입니다

0

91

1