입력에 해당하는 값만 출력하는데 그 전까지의 값을 저장할 필요가 없죠
1193번 - 분수찾기
먼저 가장 마지막으로 수정한 코드에서 조언드리겠습니다.
1. Scanner 보다는 BufferedReader 로 입력을 받는 것이 메모리와 시간 모두 단축시킬 수 있습니다.
2. String 으로 굳이 묶지 않고 바로 출력하는 방법이 메모리를 좀 더 아낄 수 있습니다. String s 는 불필요해 보입니다.
3. do-while을 쓰셔도 됩니다만 특별한 상황이 아니면 while을 쓰는 것이 좋을 것 같습니다. 최소한 1번은 실행하느냐 아니냐의 차이는 앞으로의 문제에서 입력에 있어서 극단적인 수(0번 실행) 같은 것을 받을 수도 있기 때문에 예외의 경우를 생각해서라도 while 로 바꾸는게 더 좋을듯 싶습니다.
4. std를 닫아주는거라면 입력이 더이상 없을 경우에 바로 닫아주는 것이 scanner 의 메모리 자원을 반납해주기 때문에 더 효율적으로 메모리를 관리할 수 있습니다.
5. 로직 자체는 잘 짜신 것 같습니다. 다만 작은 부탁이 있다면 질문 올리실 때 변수명을 최대한 다른사람도 읽기 쉽도록 변경해서 올려주시면 더욱 질 좋은 답변을 받으실 수 있을 것 같습니다.
댓글을 작성하려면 로그인해야 합니다.
iskim328 4년 전
얼추 값은 잘 나오는거 같은데 체점하면 메모리 초과라고 뜨더라고요.
어떻게 하면 메모리 초과가 안되게 할 수 있을까요(새로운 식을 만드는게 좋나요?).
그리고 저는 값이 잘 나온다고 생각하는데 혹시 반례가 있다면 그것도 지적 부탁드립니다.
반례 뿐만 아니라 더욱 좋은 코딩이 될 수 있다면 어떤 지적도 받겠습니다!!!! 도와주세요!