```
백준 16199번 나이 계산하기 Kotlin 구현해보기
```

이번 글을 통해 배워갈 내용
- 백준 16199번 풀이
https://www.acmicpc.net/problem/16199
16199번: 나이 계산하기
첫째 줄에 어떤 사람이 태어난 연도, 월, 일이 주어진다. 생년월일은 공백으로 구분되어져 있고, 항상 올바른 날짜만 주어진다. 둘째 줄에 기준 날짜가 주어진다. 기준 날짜도 공백으로 구분되어
www.acmicpc.net
백준 16199번 나이 계산하기는
난이도 브론즈 등급의 문제로서
생년월일과 년월일로 구성된 현재 날짜가 주어질 때
만 나이, 세는 나이, 연 나이를 계산해주면 됩니다.
30분 정도 위에 링크를 방문하셔서 풀어보시고
안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
만 나이는 생일을 기준으로
사람이 태어난 시점의 나이는 0세이고, 생일이 지날 때마다 1세가 증가하는 방식으로
생일을 기점으로 계산하였습니다.
세는 나이는 생년을 기준으로 계산하였고
사람이 태어난 시점의 나이는 1세이고, 연도가 바뀔 때마다 1세가 증가하기 때문에
단순하게 주어진 년도차에 1을 더했습니다
연 나이는 생년을 기준으로 계산하고,
현재 연도에서 생년을 뺀 값을 계산했습니다.
class MyDate(
val year: Int,
val month: Int,
val day: Int
)
// 만 나이
// 만 나이는 생일을 기준으로 계산한다.
// 사람이 태어난 시점의 나이는 0세이고, 생일이 지날 때마다 1세가 증가한다.
fun findAge01(bDate: MyDate, cDate: MyDate): Int {
var age = cDate.year - bDate.year
if (bDate.month > cDate.month) {
age--
} else if (bDate.month == cDate.month) {
if (bDate.day > cDate.day) {
age--
}
}
return age
}
// 세는 나이
// 세는 나이는 생년을 기준으로 계산한다.
// 사람이 태어난 시점의 나이는 1세이고, 연도가 바뀔 때마다 1세가 증가한다.
fun findAge02(bDate: MyDate, cDate: MyDate): Int {
return cDate.year - bDate.year + 1
}
// 연 나이
// 생년을 기준으로 계산하고,
// 현재 연도에서 생년을 뺀 값
fun findAge03(bDate: MyDate, cDate: MyDate): Int {
return cDate.year - bDate.year
}
fun main(args: Array<String>) {
// 입력
val (y1, m1, d1) = readln().split(" ").map { it.toInt() }
val (y2, m2, d2) = readln().split(' ').map { it.toInt() }
val bDate = MyDate(y1, m1, d1)
val cDate = MyDate(y2, m2, d2)
// 출력
val sb: StringBuilder = StringBuilder()
sb.append(findAge01(bDate, cDate)).append("\n") // 만 나이
sb.append(findAge02(bDate, cDate)).append("\n") // 세는 나이
sb.append(findAge03(bDate, cDate)).append("\n") // 연 나이
sb.setLength(sb.length - 1)
print(sb)
}
// https://codemasterkimc.tistory.com/
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
728x90
'Kotlin > Kotlin 알고리즘' 카테고리의 다른 글
| 백준 13706번 제곱근 Kotlin 구현해보기 (0) | 2022.09.18 |
|---|---|
| 백준 14910번 오르막 Kotlin 구현해보기 (0) | 2022.09.17 |
| 백준 24751번 Betting Kotlin 구현해보기 (0) | 2022.09.15 |
| 백준 2295번 세 수의 합 Kotlin 구현해보기 (0) | 2022.09.09 |
| 백준 10815번 숫자 카드 Kotlin 구현해보기 (0) | 2022.09.08 |