작성
·
60
0
문제에서 최대/최소값을 구할 때 결과를 담아 둘 변수에 최대값을 구할 땐 최소값을 저장하고, 최소값을 구할 땐 최대값을 저장해 모든 경우에 대해 업데이트합니다. 그래서 ret에 값을 저장해둬야합니다. 이런 상황에서 다소 귀찮더라도 저는 항상 문제 입력값을 기반으로 최대, 최소값을 구해서 저장하는 편입니다. 근데 큰돌님 영상을 보면 항상 최대 최소를 987654321, -987654321로 넣으시던데 별 생각 없이 그냥 이렇게 저장하고 문제 풀어도 문제가 없는건가요? 없다면 왜 그런건가요? int의 최대 최소값인 20억도 아니고 987654321로도 되는 이유가 궁금하네요
답변 2
1
안녕하세요 병욱님 ㅎㅎ
저는 항상 문제 입력값을 기반으로 최대, 최소값을 구해서 저장하는 편
-> 좋은 습관입니다. 그렇게 하는게 맞고 앞으로도 그렇게 하셔도 좋습니다.
다만, 보통의 int타입 문제는 987654321 이런식으로 해도 풀리는 경우가 많습니다.
저 같은 경우는 빠르게 문제를 풀기 위해 int타입인데 최대값 필요 -> 987654321를 넣고 풀기 -> 안풀리면 올바르게 문제 최대범위 다시 확인 이런식으로 하는 편입니다.
또한, 해당 부분에 대한 이유는 교안내의 다음 부분 참고부탁드립니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 유병욱님.
질문하신 내용은 알고리즘 문제를 해결할 때 최대값이나 최소값을 효율적으로 찾기 위한 변수 초기화에 관한 것입니다. 일반적으로 사람들은 “987654321”이나 “-987654321” 같은 눈에 띄는 숫자로 최대/최소 값을 초기화합니다. 이는 다음과 같은 이유 때문입니다:
가독성: 코드 내에서 이런 숫자를 사용하면 눈에 잘 띄고, 이는 팀 프로젝트에서 여러 사람들과 작업할 때 유리할 수 있습니다. 이 숫자는 INT_MAX
, INT_MIN
등과 같이 명확하게 쉽게 이식할 수 있는 값으로 관심을 끌 수 있습니다.
문제 범위 내 적절성: 일부 문제의 제한 범위 내에서는 이러한 값들이 충분히 큰/작기 때문에 실제 계산에서 쉽게 벗어나지 않습니다. 예를 들어, 문제의 숫자가 백만 단위 이하인 경우라면 “987654321” 같은 값은 문제가 없는 초기화 값입니다.
일반적인 활용: 특정 상황이나 문제 종류에 따라, 프로그래머들이 서로에게 같이 작업할 때, 코드의 일관성을 유지하기 위해 흔히 사용되기도 합니다.
테스트 케이스에서 확신: 적절한 초기화를 통해 테스트케이스에서 갱신이 될 것인지 확신을 가질 수 있어, 버그를 예방하는 데 도움을 줍니다.
하지만, 위 값이 충분히 커 보이지만 모든 문제에 적용할 수 있는 것은 아닙니다. 문제의 수치 범위가 더 큰 경우에는 그에 맞는 적절한 초기 값을 설정해야 합니다.
비슷한 문제에 대한 더 자세한 정보를 아래 링크에서 확인해 보실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아 교안 처음 읽을 땐 이해가 되지 않았던 부분이었는데, 문제를 풀다 보니 어떤 의미에서 적어주신 건지 완전히 와 닿네요. 감사합니다!!