Search

천성민 멘토링 신청

분류
질문
담당멘토
양민욱
멘토링 요청시간
2023/06/22 21:30
멘토링 시간
2023/06/22 22:30-22:40
멘토링방
멘토링룸1
배정상태
해결완료
비용지급
지급완료
번호
0
신청팀
개인
소요시간
0.25
작성자
천성민

질문(예시)

질문을 구체적으로 작성해주셔야 명확한 답변을 받으실 수 있습니다! (수업 관련 질문이 없을 경우 취업 관련, 공부 관련된 고민 등도 남겨주세요!)
출력이 되지 않는 문제점과 주석의 해석이 잘못된 부분이 있는지 궁금합니다
2. 공공데이터포탈에서 제공해주는 Open Api를 사용할 때 지난번 알려주신 mokie를 이용하지 않고, 무료 인증키를 받아 공공데이터포탈 http 서버에 직접 접근해서 데이터를 받아오려고하니, https 통신규약을 따르고서는 통신이 안되어서요

화면캡쳐(없을 경우 생략)

질문해주신 코드

import java.util.* fun main() { val sc = Scanner(System.`in`) val alamHour = sc.nextInt()// 알람 시간입력 val alamMin = sc.nextInt()// 알람 분 입력 // 함수 인자에 매개변수를 넣어준다 fun calculateTime(alamHour: Int, alamMin: Int) { // 시간을 분으로 환산하고 분을 더한 뒤 45분을 빼면 원래의 시간이 나온다 val totalMin = ((alamHour * 60) + alamMin) - 45 val realHour: Int val realMin: Int // 조건식을 이용하여 양수일 경우 60으로 나눈 몫은 시간, 나머지는 분으로 재환산하여 출력 if (totalMin > 0) { realHour = totalMin / 60 realMin = totalMin % 60 return println("${realHour}, ${realMin}") //음수일 경우 24*60=1440를 더한 뒤 양수계산식과 동일하게 계산하여 24시 이전의 시간으로 재환산하여 출력 } else if (totalMin <= 0) { realHour = (totalMin + 1440) / 60 realMin = (totalMin + 1440) % 60 return println("${realHour}, ${realMin}") } } }
Kotlin
복사
JavaScript
복사

프로젝트 주소(없을 경우 생략)

멘토 답변

답변1
import java.util.* fun main() { val sc = Scanner(System.`in`) val alamHour = sc.nextInt() val alamMin = sc.nextInt() fun calculateTime(alamHour: Int, alamMin: Int) { val totalMin = ((alamHour * 60) + alamMin) - 45 val realHour: Int val realMin: Int if (totalMin >= 0) { ---- (3) // totalMin이 0일때도 이 로직이 타도록 수정 realHour = totalMin / 60 realMin = totalMin % 60 return println("$realHour $realMin") } else { ------- (2) // 불필요한 else if 제거 realHour = (totalMin + 1440) / 60 realMin = (totalMin + 1440) % 60 return println("$realHour $realMin") ---- (4) // 문제 출력 값과 형식 통일 , 제거 } } calcuateTime(alamHour, alamMin) --- (1) // 선언한 함수 호출을 하기! }
JavaScript
복사
답변2
간결한 코드로 리팩토링한 코드
import java.util.* fun main() { val sc = Scanner(System.`in`) val alamHour = sc.nextInt() val alamMin = sc.nextInt() val time = (alamHour * 60) + alamMin - 45 if (time < 0) time += 1440 println("${time / 60} ${time % 60}") }
JavaScript
복사