본문 바로가기

전체 글96

[TIL] 트러블슈팅 & RecyclerView 학습 📖 Today I Learned 🔮 학습 및 노트 정리 알고리즘: 덧칠하기 https://occhiolism.tistory.com/92 Recycler View 학습 및 개인과제 수행 https://github.com/eun-24k/CarrotMarketAppReplication/blob/master/app/src/main/java/com/example/carrotmarketappreplication/activity/MainActivity.kt 트러블슈팅 : CheckDebugDuplicateClasses https://occhiolism.tistory.com/93 2024. 1. 5.
CheckDebugDuplicateClasses Error 에러가 뜨는 dependency 파일이 중복되어 implementation에 들어가있는 지 확인하기 최신 버전으로 되어 있으면 이 에러가 나기도 한당. 나는 버전 고쳐서 고쳐졌다. 2024. 1. 5.
[프로그래머스 • 코틀린] 덧칠하기 #161989 #161989 🎄 Question ? class Solution { fun solution(n: Int, m: Int, section: IntArray): Int { var answer: Int = 0 return answer } } 🧩 Thought Process 아예 못풀었다.. 🎀 Answer class Solution { fun solution(n: Int, m: Int, section: IntArray): Int { //한 구역에 페인트를 여러 번 칠해도 되고 다시 칠해야 할 구역이 아닌 곳에 페인트를 칠해도 되지만 다시 칠하기로 정한 구역은 적어도 한 번 페인트칠을 해야 합니다. val queue = LinkedList() var answer = 0 section.toCollection(que.. 2024. 1. 5.
ViewBinding findViewById 대체 가능한 기능이다. 코드 작성을 훨씬 편리하게 만들어주고 뷰와의 상호작용을 쉽게 만들어준다. step 1. build.gradle 파일에 아래 코드 추가 android { ... buildFeatures { viewBinding = true } } 몇몇의 레이아웃 파일을 바인딩하고 싶지 않을 떄에는 아래 코드를 레이아웃 파일에 추가해주면 된다. ... 액티비티 레이아웃 페이지 이름이 activity_sign_in.xml 이라면 이 이름을 Pascal Case로 바꾼 ActivitySignInBinding클래스를 만든다. 클래스에서 코드를 아래와 같이 적어준다. private lateinit var binding: ResultProfileBinding override fun on.. 2024. 1. 4.
[TIL] KPT 📖 Today I Learned 🔮 학습 및 노트 정리 1. Keep : 이번 프로젝트에서 진행한 과정 중 다음 프로젝트에서도 유지했으면 하는 부분 코드 컨벤션 설정 및 공유 피그마를 활용한 와이어프레임 개발 협업 사항(에뮬레이터, 안드로이드 버전, 풀 리퀘스트 등…) 미리 정하고 들어가기 페이지 별로 개발 진행 당일 목표치를 개별적으로 정하기 개발 중에는 마이크 키는 것과 화면 공유하기 UI 커스텀 수업에 배운 내용 적극 활용하기 2. Problem : 이번 프로젝트에서 발생한 문제점을 객관적으로 판단하고 해당 문제점을 해결할 수 있는 현실적인 방안 제시 코드 컨벤션 확실히 결정하지 못한 것과 미숙지한 것 → 처음부터 확실하게 결정할 수 있게 소통을 자세히 하여 진행하기 → 쉽게 볼 수 있는 곳에 게시.. 2024. 1. 2.
[TIL] 화면 재활용 | enum class | data class 📖 Today I Learned 🔮 학습 및 노트 정리 화면 재활용: 원하는 화면에 들어갈 때 특정 값을 인텐트로 넘겨 주어 그 값이 무엇이냐에 따라 위젯들의 텍스트를 수정해줄 수 있다. 정말로 어의없게 화면 전환이 갑자기 안돼서 한 참 막혔는데 내가 인텐트를 setOnClickListener에 안 넣었었다. 정말 터무니 없는듯.. 과제하면서 enum 클래스에 대해 학습하였다. [https://occhiolism.tistory.com/88] 💡 알고리즘 - 코틀린 : 프로그래머스 코드 카타 12977 https://occhiolism.tistory.com/87 [프로그래머스 • 코틀린] Generating Prime Number #12977 #12977 🎄 Question ? https://school... 2023. 12. 29.
[프로그래머스 • 코틀린] Generating Prime Number #12977 #12977 🎄 Question ? https://school.programmers.co.kr/learn/courses/30/lessons/12977 class Solution { fun solution(nums: IntArray): Int { var answer = -1 // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다. println("Hello Kotlin") return answer } } 🧩 Thought Process nums 배열에서 3개의 값을 더할 수 있는 모든 경우의 수를 for 문을 이용하여 찾아주었습니다.. nums 배열에서 3개의 값을 더했을 때 생기는 소수의 개수를 세는 문제인줄 알았는데 nums 배열에서 3개의 값을 더했을 때 소수가 생기는 경우의 수를 물어보는 문제였습니.. 2023. 12. 29.
animation 화면 슬라이드 전환 구현 Kotlin Code start() / launch() 뒤에 overridePendingTransition(R.anim.slide_in_from_bottom, R.anim.slide_out_to_top) 2023. 12. 29.
[TIL] S.A 작성방법 | 커밋 컨벤션 | 에니메이션 추가 📖 Today I Learned 🔮 학습 및 노트 정리 S.A. 피드백을 받았다. [https://occhiolism.tistory.com/84] S.A.를 작성하는 목적은 프로젝트 협업의 진행상황을 기록하기 위함이라는 것을 잊지 말아야겠다. Readme 파일을 처음 작성해보았다. animation을 구현시키는 방법에 대해 공부했다. [https://occhiolism.tistory.com/manage/posts/] Figma 프레임 사용법에대해 추가 학습 후 응용하였다. Github에서 pull request를 하고 merge하는데에 무서움이 덜어졌다. Commit Convention이라는 존재에 대해 처음 알았다. 인터넷에 찾아보니 통용적으로 사용하는 형식이 있는것 같다. 태그: 제목 본문내용 꼬리말.. 2023. 12. 28.
SA 템플릿 SA🐾 깃허브 링크: 1. 프로젝트 제목 / 간단 설명 아이디어 브레인 스토밍 앱 기획 제목 : 목적 : 화면 구성 : 기한 : 2. 와이어프레임 (피그마 링크) 3. 개발 기능 정의 1) 메인 페이지 게시물 영역게시물 있는 영역만 스크롤 되게 하기사용자 이름이 있는 구역을 누르면 디테일 페이지로 이동하기 (⭐필수⭐)더보기를 누르면 잘려있던 게시글이 전부 보이게 하기 게시물 작성자, 이미지, 게시글 순으로 레이아웃 구성 이미지 또는 하트를 누르면 좋아요 숫자 증가 & 좋아요 이미지 변경시키기 스크롤뷰 사용하여 게시물 리스트가 스크롤 가능하게 하기 (⭐필수⭐) 사용자 리스트 영역가로로 스크롤 되게 하기 스크롤뷰 사용하여 사용자 리스트가 스크롤 가능하게 하기 사용자 이름이 들어가 있는 상단바 영역인사말 속 .. 2023. 12. 28.
[TIL] 유효성 처리 | return@ | RegisterForActivityResult 📖 Today I Learned 🔮 학습 및 노트 정리 유효성 처리 private fun getMessageValidId(): String? { val text = etId.text.toString() if (etId.isVisible) { val errorCode = when { text.isBlank() -> SignUpErrorMessage.EMPTY_ID (text.isNotBlank() && Pattern.matches("^[a-z0-9]*\$",text)) -> null else -> SignUpErrorMessage.INVALID_PASSWORD } return errorCode?.let { getString(it.message) } } else return null } 유효성처리를 할 때 .. 2023. 12. 27.
[프로그래머스 • 코틀린] 모의고사 완전탐색 #42840 #42840 🎄 Question ? https://school.programmers.co.kr/learn/courses/30/lessons/138477 class Solution { fun solution(k: Int, score: IntArray): IntArray { var answer: IntArray = intArrayOf() return answer } } 🧩 Thought Process 사람 1,2,3이 작성한 답의 패턴을 p1, p2, p3에 배열에 넣어 주었다. 각 사람 당 맞춘 문제수를 저장하기 위해 mutableMap도 만들어주었다. for문으로 실제 답의 인덱스에 맞게 돌려주었다. 답을 각각 p1, p2 와 p3의 크기로 나누고 그 나머지의 인덱스를 가진 p1/p2/p3의 값을 ans.. 2023. 12. 27.
[알고리즘] 완전탐색 뜻 가능한 경우의 수를 모두 조사해서 정답을 찾는 방법. 활용 완전 탐색 알고리즘 동작 과정 해결하고자 하는 문제의 가능한 경우의 수를 대략적으로 계산 가능한 모든 방법을 다 고려 실제 답을 구할 수 있는지 적용 완전탐색의 종류: Brute Force : 반복 / 조건문을 통해 가능한 모든 방법을 단순히 찾는 경우 (시간이 오래걸림) Backtracking : 현재 상태에서 가능한 후보군으로 가지를 치며 탐색하는 알고리즘. 분할정복을 이용한 기법으로 재귀함수를 이용하고 해를 찾아가는 도웆ㅇ 해가 될 것 같지 않은 경로가 있다면 더 이상 가지 않고 되돌아간다. Permutation : 순열은 임의의 수열이 주어졌을 때 그것을 다른 순서로 연산하는 방법이다. 서로 다른 N개를 일렬로 나열하는 순열의 경우는 .. 2023. 12. 26.
Activity 활동 수명 주기 액티비티는 한 화면을 의미합니다. - 이 함수들은 메인 스레드의 명령 이벤트에 따라 호출되기 때문에 콜백 함수라고 한다. - onCreate() 함수는 액티비티가 생성될 대 호출되고 반드시 구현해야 한다. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } - onStart() 함수는 액티비티가 화면에 뜨면 호출되는 함수이다. override fun onStart() { super.onStart() //start animation or update UI } - onPause() 함수는 애플리케이션이 다른 것에 의해 가려진 경우 .. 2023. 12. 22.
[프로그래머스 • 코틀린] 과일 장수 #135808 #135808 🎄 Question ? https://school.programmers.co.kr/learn/courses/30/lessons/135808 class Solution { fun solution(k: Int, m: Int, score: IntArray): Int { var answer: Int = 0 return answer } } 🧩 Thought Process 품질이 좋고 품질이 안 좋은 사과를 골고루 넣으면 모든 상자에 품질이 안 좋은 사과가 들어 전체 단가를 낮출 것이다. 그러므로 품질이 좋은 사과 순으로 박스를 만들어야만 상대적으로 비싼 박스가 나올 수 있으므로 최대 수익으 낼 수 있다. 그래서 score array를 내림차순으로 정리해 주었다. 이 score 배열의 크기를 m개 로.. 2023. 12. 21.