본문 바로가기
♞ | 공부일지/♝ | TIL

[Android, 내일배움캠프] 공부일지(2024-05-09)

by immgga 2024. 5. 9.
오늘 공부한 내용 정리(2024년 5월 9일)

 

 

1. 코드카타 문제풀이

A. 이상한 문자 만들기

문제 내용

 

문제 풀이 방법

  • s를 공백을 기준으로 나눈다
  • 나눠진 s 데이터 각각의 짝수번째 index에 해당하는 문자는 대문자로, 홀수번째 index에 해당하면 소문자로 변경해 return 한다.

 

해결 코드(스포 주의)

더보기
fun solution(s: String): String {
    var answer = ""
    val splitList = s.split(" ")

    splitList.forEachIndexed { i, string ->
        string.forEachIndexed { index, char ->
            // 입력받을 때 소문자만 오는 게 아닌 대문자도 섞여서 올 수 있기 때문에 소문자 처리도 같이 해주어야함.
            answer += if (index % 2 == 0) char.uppercase()
            else char.lowercase()
        }

        if (i < splitList.size -1) answer += " "
    }

    return answer
}

 

풀이 과정

  • 받아온 문자열 데이터 s를 slipt()을 이용해 공백(" ")을 기준으로 나눈다(리스트로 변환됨).
  • 나눈 문자열 리스트에 forEachIndexed {}를 이용해 각각의 index의 string을 확인할 수 있게 해 준다(공백을 제외한 단어들만 체크해야 하기 때문).
  • 단어를 기준으로 forEachIndexed {}를 이용해 짝수번째 index이면 대문자로, 홀수번째 index이면 소문자로 변환한다.
    s에는 대소문자가 모두 올 수 있기 때문에 대소문자 변환 코드를 같이 넣어주어야 한다.
  • 안쪽 forEachIndexed 문이 종료되면 공백을 추가해 준다.
    그대로 공백을 추가하게 되면 answer의 마지막에도 공백이 추가되기 때문에("try hello world"를 split()을 이용해 나누면 size가 3인 list로 변환되는데, 아무 조건 없이 공백을 추가하면 추가되어야 하는 공백은 2개인데 공백은 3번이 들어가기 때문에 결과가 "TrY HeLlO WoRlD "가 된다) split list의 size에 -1 만큼 빼서 마지막 공백을 넣는 것을 방지한다.

 

2. 스파르타 코딩 클럽 강의 수강

A. BMI 계산기(마무리, 1 - 4)

강의 내용 간단 정리

  • BMI 계산기에 본격적인 코드 작성으로 기능을 만들어 주었다.
  • 입력받은 몸무게와 키를 불러와서 BMI 계산 공식으로 계산 후 소수점 버리기까지 해서 적절한 BMI 계산 결과를 도출해 TextView에 보여 주었다.

 

3. 개인 공부

A. Planner 개발

공부 내용

  • 카테고리 추가 기능 개발 중.
  • 카테고리를 수정, 삭제했을 때 기존의 일정들에 적용되어 있는 카테고리 정보를 변경할 수 있도록 하는 코드 추가.

 

 


 

간단 정리

  • 프로그래머스에 함정 문제에 걸려들어 많이 틀렸었는데, 질문하기 탭에서 원인을 알게 되었다. 앞으로 함정 문제가 있다는 것을 의식하면서 문제를 해결해야 할 것 같다.
  • 스파르타 1주 차 강의는 앱 개발이 어떻게 이루어지는지 대략적으로는 알 수 있었던 강의였던 것 같다.
    하지만 무작정 따라 치는 게 아닌 약간의 설명이 있었다면 초심자들이 이해하는 게 더 수월했을 것 같다는 아쉬움도 있다.
  • planner 카테고리 기능 구현은 구현 마무리 후 따로 포스팅을 올리겠다.

 

728x90