Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 불끌때
- 피온4
- Java & SpringBoot로 시작하는 웹 프로그래밍
- 부르지마세요
- fifaonline4
- 자바 인강
- Ai
- 부의감각
- 박스#강아지집#만들기
- 안드로이드 #앱개발#계산기
- 스쿼드 메이커
- K디지털크레딧
- 내일배움카드
- 독서감상문
- 랜덤스쿼드
- D-ID
- 홈CCTV
- 강아지 스마트 펜스
- 안녕 디지몬
- fifaonline
- 패스트캠퍼스
- 바이트디그리
- 아두이노#작품#사료급식기
- #FIFAONLINE4
- 혼술 술자리 인싸앱
- 랜덤
- 안드로이드#앱만들기#알바
- 강아지 #박스집 #복층
- 안드로이드
- 안드로이드 그림판#그림메모장#낙서장
Archives
- Today
- Total
LC Studio
Programmers Lv1 개인정보 수집 유효기간 (Kotlin) 본문
코딩테스트 연습 - 개인정보 수집 유효기간 | 프로그래머스 스쿨 (programmers.co.kr)
문제
개인정보 수집 유효기간을 비교하여, 파기되어야 할 개인정보를 분류하는 문제이다.
풀이
현재날짜와 (개인정보 수집일자 + 약관 종류별 일자)를 비교하면 된다.
자세한 풀이는 아래 주석을 참고하자.
class Solution {
fun solution(today: String, terms: Array<String>, privacies: Array<String>): IntArray {
var answer = mutableListOf<Int>()
val todayTotal = totalDay(today)
val map = hashMapOf<String, Int>()
//terms정보를 term변수에 hashMap 형태로 저장
for(i in terms.indices) {
val token = terms[i].split(" ")
map[token[0]] = token[1].toInt()
}
//privacies정보를 privacie변수에 hashMap 형태로 저장
for(i in privacies.indices) {
val token = privacies[i].split(" ")
val date = token[0]
val type = token[1]
val dateTotal = totalDay(date)
val month = map[type] ?: 0
val changeDay = month * 28
//오늘날짜가 수집일자+약관종류의 유효기간 보다 크다면 정답에 추가
if(todayTotal >= (dateTotal + changeDay)){
answer.add(i+1)
}
}
return answer.toIntArray()
}
//날짜를 일자로 변환
private fun totalDay(todayTotal: String): Int {
var sum = 0
val token = todayTotal.split(".")
val y = token[0]
val m = token[1]
val d = token[2]
//문제의 조건에 맞게 일자로 변환
sum += y.toInt() * 12 * 28
sum += (m.toInt() - 1) * 28
sum += d.toInt()
return sum
}
}
반응형
'Java > Programmers' 카테고리의 다른 글
Programmers Lv2 k 문자열 압축 (JAVA) (0) | 2022.05.06 |
---|---|
Programmers Lv2 k 진수에서 소수 개수 구하기 (JAVA) (0) | 2022.03.29 |
Programmers Lv1 신고 결과 받기 (0) | 2022.03.28 |
Programmers Lv2 행렬 테두리 회전하기 (0) | 2022.03.25 |