inflearn logo
강의

Course

Instructor

The secret to passing 38 companies, essential algorithms for the 2026 coding test

3-6. Queue

1874 - 스택 문항

Resolved

80

gisu11028193

1 asked

0

1. 현재 학습 진도

 

2. 어려움을 겪는 부분

3. 시도해보신 내용

이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊

python 코딩-테스트 알고리즘 data-structure

Answer 2

0

dingcodingco

안녕하세요 기수님 좋은 질문 감사드립니다!!! 코드 효율성뿐 아니라 "사고의 흐름과 코드 구조"에 대한 고민까지 하시는 거 넘넘 좋습니다!!

1. 두 코드의 핵심 차이점

작성해주신 코드와 강의 코드의 가장 큰 차이는 "언제 종료 조건을 체크하느냐"입니다.

공유해주신 코드는 1부터 n까지 순차적으로 push하면서 가능한 만큼 pop을 수행하고, 반복문이 끝난 뒤에 스택이 비어있는지 확인하는 방식이에요. 반면 강의 코드는 while True 안에서 매 상황마다 조건을 분기해서 불가능한 순간에 바로 탈출하는 방식이죠.

재밌는 건, 두 방식 모두 시간복잡도는 O(N)으로 동일합니다. 숫자는 최대 한 번씩 push되고 한 번씩 pop되니까요.

 

2. 생각의 흐름대로 코드 짜는 것, 괜찮을까요?

결론부터 말씀드리면, 전혀 문제없어요. 오히려 초반에는 이게 더 좋은 습관입니다.

코딩테스트에서 가장 중요한 건 정해진 시간 안에 정확하게 동작하는 코드를 작성하는 거예요. 본인의 사고 흐름대로 코드를 짜서 정답이 나온다면, 그게 가장 안정적인 방법입니다. 면접관이 코드 스타일을 채점하는 게 아니거든요.

공유해주신 코드처럼 "일단 다 처리하고 → 마지막에 검증"하는 패턴은 실수가 적고 디버깅도 쉬워요. 강의 코드처럼 중간에 break하는 패턴은 익숙해지면 효율적이지만, 조건 분기가 복잡해지면 실수하기 쉽습니다.

 

3. 그럼 언제 발상을 더 견고히 해야 할까요?

시간 초과나 메모리 초과가 발생했을 때, 그때 구조를 다시 고민하면 됩니다. 문제를 풀다 보면 "이건 O(N²)으로는 안 되겠다"는 상황이 분명 생기는데, 그때 최적화를 고민해도 늦지 않아요.

지금처럼 본인만의 일관된 패턴으로 문제를 풀 수 있다면, 그 패턴을 믿고 가셔도 됩니다. 다양한 문제를 풀다 보면 자연스럽게 "아, 이 상황에서는 이렇게 짜는 게 더 깔끔하겠다"는 감이 생겨요.

 

넘넘 잘하고 계십니다!! 이상태로 꾸준히 연습하시길 응원하겠습니다 좋은 하루 보내세요!!

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.
김기수님께서 작성해주신 코드에 대해 피드백을 드리도록 하겠습니다.

우선, 알고리즘 문제를 푸실 때 중요한 것은 가독성과 효율성입니다. 현재 작성하신 코드는 가독성이 높은 편입니다. 이는 코드의 흐름이 명확하고, 각 연산의 의미가 잘 드러나기 때문입니다.

그러나 효율성 측면에서는 한 번 더 고민해 볼 부분이 있을 것 같습니다. 효율성을 높이기 위해서는 코드에서 불필요한 연산을 줄이는 것이 중요합니다. 예를 들어, stack_sequence != [] 검사를 사용하여 비어있는지 확인하는 부분을 if stack_sequence:로 간결하게 표현할 수 있으며, 이는 실행 속도 개선에도 기여합니다.

또한, 문제에 관련된 모든 조건이 여러 개의 반복문과 조건문에 나뉘어 처리되는 대신, 한 번의 순회를 통해 해결할 수 있는지 고려해 보세요. 그리고 반복문 내부에서 지나치게 많은 작업을 수행하지 않도록 주의가 필요합니다.

마지막으로 코드 작성 시 주의점은 “구체성을 추구하면서도, 일반화된 패턴을 찾아 효율성을 높이는 것”입니다. 즉, 코드를 작성할 때는 현재의 흐름을 잘 기억하시되, 다소 반복적일 수 있는 패턴을 찾아 이를 줄일 수 있는 방법도 계속 연구해 보세요.

앞으로 코드를 계속 작성하시면서, 다양한 문제 상황을 경험하고 코드 작성을 반복하면 점차 감이 잡히실 것입니다. 고민이 있을 때마다 이렇게 질문 남겨주시면 도움 드릴 수 있도록 노력하겠습니다. 감사합니다.

이미지 URL:
없음

출처:
https://www.inflearn.com/faq

수강평 이벤트

0

16

2

코딩테스트 처음인데 이런 공부방법이어도 괜찮을까요

0

57

2

3-3 정렬-2 선택정렬 로직

0

37

2

링크드 리스트 끝에서 k번째 값 출력하기

0

43

2

LinkedList 과제 Fast, slow 포인터

0

49

2

투포인터 시간복잡도

0

50

2

수강평 작성 후 자료

0

51

2

수업교재 링크 오류

2

107

2

프로그래머스에서 제출 후 채점시 틀림ㅠ

0

127

2

1-10 알고리즘 더 풀어보기(2) 질문 있습니다

0

69

2

문제 풀이 방식 관련 질문입니다!

0

81

2

1-5 알고리즘과 친해지기 (2) - 최빈값찾기 질문 있습니다

0

88

2

수업자료 pdf 받고싶습니다

0

104

2

강의 자료 오류 수정

0

71

1

2-10 더하거나 빼거나 관련 질문입니다

0

61

2

3-8 해쉬 -2

0

48

2

Linked List Element Delete Explanation Problem

0

66

2

강의3-4 스택 탑 문제

0

74

2

코드스니펫 입출력 케이스에 오류가 있는것 같아요

0

98

3

링크드 리스트 원소 찾기 구현 방식 질문드립니다.

0

74

2

DP Java 예제 자료형 오버플로우 문제

0

97

2

4-9 4주차 숙제중 농심라면 문제

0

109

2

DFS 에서 스택을 사용하는 이유

1

184

3

들여쓰기가 햇갈리네요

0

120

2