오늘 공부한 내용 정리(2024년 5월 17일)
1. 코드카타 문제풀이
A. 2016년
문제 내용
문제 풀이 방법
- a가 월이고 b가 일일 때, 2016년 해당 날짜가 무슨 요일인지 출력
- 출력 형식은 각 날짜의 앞에서 3 단어(SATURDAY -> SAT)
해결 코드(스포 주의)
더보기
fun solution(a: Int, b: Int): String {
val date = LocalDate.of(2016, a, b)
return date.dayOfWeek.name.substring(0, 3)
}
풀이 과정
- 날짜 데이터에 LocalDate()를 이용해 정확한 날짜 정보를 생성해 줌.
- LocalDate().dayOfWeek.name을 하게 되면 해당 날짜에 요일을 알 수 있는데, 풀네임으로 나오기 때문에 subString()으로 3자리까지만 뽑을 수 있도록 설정.
B. 부족한 금액 계산하기
문제 내용
문제 풀이 방법
- 놀이기구 이용료 price원이 계속 놀이기구를 이용할수록 이용료가 배로 증가함.
- 놀이기구를 count번 이용했을 때, 자신이 가진 money에서 얼마가 부족하게 되는지 return.
돈이 부족하지 않으면 0을 return.
해결 코드(스포 주의)
더보기
fun solution(price: Int, money: Int, count: Int): Long {
var answer: Long = 0
var totalMoney: Long = 0
repeat(count) {
totalMoney += price * (it+1)
}
answer = money.toLong() - totalMoney
// answer(남은 돈)이 0원 미만일 때: 돈이 모자름.
return if (answer < 0) answer * -1L
else 0L
}
풀이 과정
- return type이 long임. int 자료형으로 하면 크기 초과가 발생하는 경우가 테스트 케이스에 있을 가능성이 높음.
- count만큼 repeat()으로 반복해서 totalMoney(놀이기구 이용에 필요한 총금액)에 price * 이용 횟수만큼 더해줌.
- answer(long 타입)에 money와 totalMoney를 빼줌
- answer가 음수라면(돈이 모자람) answer에 -1을 곱해 양수로 만들어서 return. 아니면 0을 return.
-1에 L을 붙여서 Long타입으로 만들어서 곱해주어야 함. 안 그러면 int로 인식해서 int 범위 초과로 채점할 때 일부 테스트 케이스에서 실패할 가능성이 높음.
2. 스파르타 코딩 클럽 강의 수강
A. MBTI 테스트 앱 만들기(결과화면. 3-4)
강의 내용 간단 정리
- intent를 할 때, putExtra()를 이용해 특정 타입의 데이터를 다음 화면에서 사용할 수 있도록 하는 코드 작성
- resource.getIdentifire()으로 동적으로 특정 drawable의 icon을 불러옴.
간단 정리
- 프로그래머스 문제 풀이 중.
- 토이 프로젝트를 하기에는 이제 시간이 얼마 남지 않아서 프로그래머스 문제 푸는 데 시간을 더 쏟을 생각이다.
728x90
'♞ | 공부일지 > ♝ | TIL' 카테고리의 다른 글
[Android, 내일배움캠프] 공부일지(2024-05-27) (0) | 2024.05.27 |
---|---|
[Android, 내일배움캠프] 공부일지(2024-05-18) (0) | 2024.05.18 |
[Android, 내일배움캠프] 공부일지(2024-05-16) (0) | 2024.05.16 |
[Android, 내일배움캠프] 공부일지(2024-05-15) (0) | 2024.05.15 |
[Android, 내일배움캠프] 공부일지(2024-05-14) (0) | 2024.05.14 |