해결된 질문
작성
·
73
·
수정됨
0
안녕하세요 강사님
1-H 문제에 대해서 강사님과 다른 방법으로도 풀어보았는데
강사님의 구간합 방법
보다 시간이 20ms 가량 높게 나와서 궁금증에 질문드립니다.
구간합의 반복횟수 보다 적게 반복 한 것 같은데, 내부에 분기문과 queue 사용으로 인해 시간이 더 늘어나게 된걸까요?
맞다면 queue의 처리는 O(1)으로 알고 있어서 분기문과 queue 중 처리 속도 증가의 원인을 꼽자면 분기문이 더 큰 비중을 차지하는지도 궁금합니다
퀄리티 높은 강의와 지속적인 피드백 늘 감사드립니다!
답변 2
0
안녕하세요 개발님 ㅎㅎ
구간합의 반복횟수 보다 적게 반복 한 것 같은데, 내부에 분기문과 queue 사용으로 인해 시간이 더 늘어나게 된걸까요?
-> 음.. 분기문보다는 queue의 영향이 더 크다고 생각합니다. 코드를 보면 O(1) 의 해당하는 연산밖에 사용하지 않으셨지만 queue라는 자료구조를 생성 하고 사용하는데에 20ms 정도 더 들게 하는 것 같습니다.
참고로 분기문은 다음 그림처럼 그렇게 시간에 영향을 주지 않습니다.
퀄리티 높은 강의와 지속적인 피드백 늘 감사드립니다!
-> 저도 감사드립니다.ㅎㅎ 열심히 하겠습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
질문해주신 내용에 대해 답변을 드리겠습니다. 주어진 문제에서는 구간합을 사용하는 방법과 다른 방법을 이용했을 때의 성능 차이에 대한 질문이셨습니다. 두 방법의 시간 차이의 원인은 여러 가지 요인이 있을 수 있습니다.
구간합을 이용한 방법의 장점: 구간합은 특정 부분의 합을 빠르게 계산할 수 있기 때문에 일반적으로 반복문의 수가 줄어들어, 시간 복잡도가 최적화됩니다. 이를 통해 성능이 향상될 수 있습니다.
큐의 사용과 분기문의 영향: 큐를 사용할 때의 시간 복잡도는 평균적으로 O(1)에 가깝지만, 실질적으로 큐에 요소를 넣고 빼는 과정이 많아질수록, 특히 분기문이 여러 번 발생할 경우 오버헤드가 발생할 수 있습니다. 이런 오버헤드가 누적되어 시간이 길어질 수 있습니다.
분기문의 영향: 분기문은 프로그램의 흐름을 여러 번 변경하므로 성능에 영향을 줄 수 있습니다. 특히 잘못된 분기문 사용이나 불필요한 계산이 많을 경우 성능 저하가 클 수 있습니다.
위의 설명을 참고하여, 아래는 두 가지 관련된 답변을 찾을 수 있는 링크입니다:
- 구간합 방법을 사용한 풀이 설명
- 다른 방법으로 풀어본 경우
이러한 성능 차이는 때로는 작은 코드 최적화를 통해 개선될 수 있습니다. 상황에 따라 프로파일링을 통해 실제 시간 소비가 많은 부분을 찾아 최적화할 수도 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.