[백준 C++] 5635번 생일 문제 풀이 (2가지 풀이)
·
Coding Test/백준
이 문제를 풀고 함수 선언 순서가 중요하다는 걸 깨달았어요. mToAge 함수 보다 mTod 함수가 위에 있어야 에러도 안 나고 정상 작동하더군요.저는 꽤 복잡하게 문제를 푼 편입니다. 31일: 1, 3, 5, 7, 8, 10, 12월30일: 4, 6, 9, 11월 (2월은 보통 28일)을 이용해서 풀었는데 (이마저도 코드에는 30일과 31일을 거꾸로 썼네요. 참고바래요,) 나이를 일 단위로 환산해서 푸는 것은 직관적이지만 좀 더 어려운 편이에요. 더 간단하게 작성하는 방법이 있어요.바로 가중치를 이용해서 푸는 방법이에요. 2020 - yyyy 같은 계산 없이도, 단순히 날짜 숫자를 비교하는 것만으로 누가 먼저 태어났는지 완벽하게 가려낼 수 있어요. int 범위를 넘어갈 수 있는 상황을 대비해 lon..
[백준 C++] (브론즈2) 11098번 첼시를 도와줘!
·
Coding Test/백준
1. 구조체가 필수는 아니었던 것 같아요.2. 출력에 줄바꿈이 되어있다면 꼭 줄 바꿈을 해주어야 정확하게 정답이 들어간다는 사실을 깨달았어요.3. price를 0으로 하기보다는 -1로 해주는게 좀 더 좋겠어요. https://www.acmicpc.net/problem/11098
[백준 C++] (브론즈2) 1977번 완전제곱수 풀이
·
Coding Test/백준
https://www.acmicpc.net/problem/1977 작성하신 코드를 보니 연산 순서와 sqrt의 활용법을 아주 잘 이해하고 적용하셨네요! 하지만 몇 가지 결정적인 부분에서 **"Wrong Answer"**나 **"Runtime Error"**가 발생할 수 있는 지점들이 보입니다.가장 큰 문제부터 차근차근 짚어드릴게요.1. 배열의 크기와 인덱스 범위 (가장 중요!)문제에서 $N$의 최대값은 10,000입니다. $\sqrt{10,000} = 100$이죠.현재 bool arr[100]으로 선언하셨는데, 이 배열은 0부터 99까지의 인덱스만 가질 수 있습니다.만약 $N=10,000$이 입력되면 i가 100이 되고, arr[100] = true;를 실행하는 순간 배열의 범위를 벗어나 프로그램이 죽..