본문 바로가기

전체 글96

[TIL • 20231211] #19 (안드로이드 2기 본캠프) 📖 Today I Learned 🔮 학습 및 노트 정리 안드로이드 구성에 대해 공부했다. 메니페스트 파일은 앱의 기본 구성 요소 인 액티비티, 서비스, 앱 이름 그리고 앱 아이콘 등을 추가하 줄 수 있는 파일이다. 또한 앱 제체의 테마 스타일도 지정해 줄 수 있다. 참고로 액티비티를 추가해 줄 때마다 메니페스트 파일에 추가해 주어야 한다고 한다. 리소스 파일: 들어가는 사진, 레이아웃, 아이콘, 색깔, 문자열 등등 파일에 들어가는 자료들을 종류에 따라 모아놓은 파일이다. 기능이 구현되는 코드의 가독성을 높여 주기 위해 공통되는 특징이나 추가 자료들을 따로 모아놓은 파일이다. build.gradle : 최상위 파일로서 모듈에 적용되는 빌드 구성을 정의한다. View: 안드로이드 앱의 UI (User Int.. 2023. 12. 11.
[프로그래머스 - 코틀린] 내적 #70128 (dot product) #70128 🎄 Question ? https://school.programmers.co.kr/learn/courses/30/lessons/70128 class Solution { fun solution(a: IntArray, b: IntArray): Int { var answer: Int = 1234567890 return answer } } 🧩 Thought Process 인덱스가 같은 두 배열을 곱한 새로운 배열 만들기 새로 만들 배열의 sum() 구하기 🎀 Answer class Solution { fun solution(a: IntArray, b: IntArray): Int { var answer = 0 for (i in 0 until a.size) { answer += a[i]*b[i] } r.. 2023. 12. 11.
[TIL • 20231208] #18 (안드로이드 2기 본캠프) 📖 Today I Learned 🔮 학습 및 노트 정리 너무 과제에 몰두하다 보니까 기록의 중요성을 조금 간과한 한 주였던 것 같다. 기능을 추가할 떄마다 커밋을 해주는 것 과 추가한 기능에서 배운 것들을 기록하는 것을 잊지 말아야 겠다. 오늘은 배열을 정의 하는 방법을 정말 정확하게 이해해주었다. 콜랙션이름(이름 소문자로 시작)Of라고하면 콜랙션을 만들어주고 그 안에 값도 바로 초기화 시켜주는 것이고 콜랙션이름(이름 대문자로 시작) 형태로 정의해주면 텅 빈 콜랙션을 만들어주는 것이니 혼동없이 사용해주어야겠다. 또한 파일을 중첩적으로 추가해서 장바구니에 메뉴를 추가한 후에는 장바구니 확인 및 주문하기 버튼이 뜰 수 있도록 메뉴 디렉토리를 하나더 만들어서 이 두 옵션을 추가해주었다. 이번 주말에는 작성했던.. 2023. 12. 8.
[TIL • 20231207] #17 (안드로이드 2기 본캠프) 📖 Today I Learned 🔮 학습 및 노트 정리 개인 과제: 오늘도 하루종일 개인 과제에 몰두해 있었다. 시간이 정말 순식간에 지나가고 퍼즐을 하나하나 맞추어나가는 재미가 있다. 오늘은 데이터를 저장하고 처리하는 로직을 작성했다. 중간에 데이터를 가져오고 수정하는 부분에서 막혀서 시간이 조금 걸렸지만 어찌저찌 잘 해결 되었다. 오늘 데이터 저장 방법, 데이터 처리 로직, 그리고 파일 정리를 하였다. 인터페이스 사용방법도 이제 확실하게 익힌것 같다. 코드 공유 준비를 클래스들을 논리적으로 정리해보았는데 장황하게 작성한 클래스가 꽤 많아서 그 클래스들을 정리해주었다. 클래스를 정리하고 나서 뜬 오류들을 수정해주었다. 시간이 충분치 않아서 연결을 시키진 않았지만 각 클래스의 기능과 플로우를 정리하니까 .. 2023. 12. 7.
[TIL • 20231206] #16 (안드로이드 2기 본캠프) 📖 Today I Learned 🔮 학습 및 노트 정리 알고리즘: map 문법 부분 상세히 공부했다. hashmap등 여러가지 배움. [https://occhiolism.tistory.com/56] 배움엔 끝이 없고 아직 람다식에 완전히 적응 못한 나.. ㅜ 어렵다 정말.. 코틀린이 객체지향이면서 함수형 프로그램이어서 객체지향 관련 문법도 알아야되고 함수형 문법도 알아야해서 조금 어려운 것 같다. 객체지향 관련 코드는 전에 아주 살짝 공부했었어서 상대적으로 쉽게 접근이 되는데 함수형코드가 읽기도 어렵고 적응이 어렵다. 코틀린의 장점이 객체지향과 함수형을 둘다 사용할 수 있어서 가독성과 접근성이 높아진다는건데 가독성이 높다고 느낄때까지의 진입장벽이 느껴지는 느낌이다. 코드...음... 오늘 큰 성과 없.... 2023. 12. 6.
[Kotlin] Map mapOf(), mutableMapOf(), hashMapOf(), sortedMapOf(), linkedMapOf() 1. mapOf() val mapWithValues = mapOf("Key1" to "Value1", "Key2" to "Value2", "Key3" to "Value3") val mapWithoutValues = mapOf() val emptyMap = emptyMap() 2. mutableMapOf() val emptyMutableMap = mutableMapOf() emptyMutableMap["Key"] = "Value" val mutableMap = mutableMapOf("Key1" to "Value1", "Key2" to "Value2", "Key3" to "Value3") mutableMap["Key3"] = "Value10" // modify value mutableMap["Key4"] .. 2023. 12. 6.
[프로그래머스 • 코틀린] 가장 가까운 같은 글자 #142086 #142086 🎄 Question ? https://school.programmers.co.kr/learn/courses/30/lessons/142086 class Solution { fun solution(s: String): IntArray { var answer: IntArray = intArrayOf() return answer } } 🧩 Thought Process string의 캐릭터 개수는 .length로 가져올 수 있다. 캐릭터 혹은 서브스트링이 문자열에 들어있는지 확인할 때 문자열.contains("원하는 부분")을 사용해서 있는지 없는지 확인할 수 있다. 리스트이름.indexOf(index, startIndex) 사용가능 리스트 수정 리스트이름.set(인덱스, 매개변수) class So.. 2023. 12. 6.
[TIL • 20231205] #15 (안드로이드 2기 본캠프) 📖 Today I Learned 🔮 학습 및 노트 정리 알고리즘: 오전 외출로 인해 못 풀었다. 개인 과제: 종일 메가커피 키오스크 과제에 몰두했다. 나름 차근차근 공통되는 기능들을 최대한 세분화하면서 구조를 만들어 내면서 코드를 구현해 나가는게 꽤나 재미있다. 코딩 해석이나 문법 공부는 하기 꺼려진다. 과제를 할 때보다 훨씬 더 많은 집중력을 요해서 그런 것 같다. 과제를 구현할 때 조금 막히거나 고민될 때 나도 모르게 멍 때리면서 클래스랑 파일 및 전에 해 놓았던 노트들을 뒤척이기 시작한다. 그래서 별로 뭘 한 거 같지도 않은데 시간이 몇시간이 훅 지나가 있다. 시간이 빨리 지나가면 그 시간을 긍정적이고 좋았던 기억으로 받아들인다던데 아마 그래서 더 과제랑 코드 구현을 더 즐기는 것 같다. 다른 사람.. 2023. 12. 5.
[TIL • 20231204] #14 (안드로이드 2기 본캠프) 📖 Today I Learned 🔮 학습 및 노트 정리 알고리즘: 알고리즘 문제를 내가 직접 풀었다. 드디어 sorted() 함수 응용법을 제대로 익혀가는것 같다. 이러다가 내일 문제 풀 때 또 막힐까봐 걱정된다. 내가 수학 풀 때 이해가 빠른 편이었어서 코드 이해도 빨리한다고 생각했는데 이해만 하고 응용하는데에는 시간이 꽤나 걸린다는 걸 요즘 깨닫고 있다. 결국 응용하고 내가 직접 사용하려면 절대적인 시간 투자가 필요한 것 같다. 다른 사람 풀이를 공부하면서 forEach문에 대해 공부했다.[https://occhiolism.tistory.com/48] 예제를 많이 읽어보니 대충 이해가 된 것 같지만 내일 한번 응용해봐야겠다. 심화 문법 강의 (유용한 기능) :[https://occhiolism.tis.. 2023. 12. 4.
[Hotel Reservation] 호텔 예약 프로그램 lv.3.1 수정한 부분: SubMenu1CheckCheckOutDate 부분을 수정해 주었다. 전에 잘못했었나보다... test 결과가 계속 이상하게 나와서 수정하고 테스트하고 를 반복했다. 생각해볼 부분: 계산기 피드백을 받은 후 이 코드도 어디엔가 더 간단하게 만들 수 있는 방법이 있지 않을까 고민하게 된다. 특히 코드의 업캐스팅이랑 다운 캐스팅을 오늘 새로 배웠는데 아직 정확한 사용방법이나 응용법을 터득하진 못했지만 잘 사용하면 코드가 훨씬 간결해질 수 있겠다는 생각이 든다. package com.example.hotelreservationprogramme fun main() { // 첫번째 실행 (메뉴 선택) val menuObject = MainMenu() menuObject.mainMenu() print.. 2023. 12. 4.
[Calculator] 계산기 만들기 lv4.1 수정한 부분 추상클래스의 주생성자를 이용해야한다는 피드백을 받았다. 추상클래스에 주생성자를 추가하긴 했지만 그 안에 추상 함수에 매개변수를 또 작성해서 장황하게 코드를 작성했었다. 또 전 코드에서는 추상클래스를 통해서 메인 함수에 추상함수를 불러오는게 아닌 추상함수를 바로 호출했었다. 추상클래스를 사용하면서 단일책임원칙을 지키지 않았던 것 같다. 지난번에 마무리하면서 메인 함수 내부에 들어가는 코드가 조금 아쉽다는 생각이 계속 들었었는데 이번에 제대로 수정한 것 같다. 장황하게 적혀져있던 메개 변수들도 전부 지울 수 있어서 코드가 매우 깔끔해졌다. package com.example.mycalculator //- Lv4 : AddOperation(더하기), SubtractOperation(빼기), Mul.. 2023. 12. 4.
[Kotlin] 유용한 기능 1. 문자열로 저장되어있는 숫자를 정수형으로 바꾸는 방법 var intNum = 10 var doubleNum = "10.43" var num1 = Integer.paresInt(intNum) var num2 = doubleNum.toDouble() println("num1 : $num1") println("num2 : $num2") // 출력값: // num1 : 10 // num2 : 10.43 2. 객체 자료형간의 변환 2.1 업 캐스팅 (자식 클래스를 부모클래스의 자료형으로 객체 생성) - 추가 공부 필요 fun main() { println("몇 마리를 생성하시겠습니까?") var count = readLine()!!.toInt() var birds = mutableListOf() for (id.. 2023. 12. 4.
[프로그래머스 • 코틀린] 두 개 뽑아서 더하기 #68644 #68644 🎄 Question ? https://school.programmers.co.kr/learn/courses/30/lessons/68644 class Solution { fun solution(numbers: IntArray): IntArray { var answer: IntArray = intArrayOf() return answer } } 🧩 Thought Process 자릿수를 더할 때마다 set에 값을 추가하는 코드를 작성했다. set에는 값이 중복되어 들어가지 않으니까 효율적일 것이라고 판단했다. 아래 코드 처럼 작성하니 44% 정확도로 문제를 틀렸다. 아마도 numbers 배열을 미리 오름차순으로 바꾸어 놓고 차근차근 값을 더해서 인 것 같다. 그래서 sorted을 나중에 해주었더니.. 2023. 12. 4.
[Kotlin] List - forEach 우선적으로 사용할 데이터가 아래 코드와 같다고 가정하자. class Country(val name : String, val cities : List) class City(val name : String, val streets : List) class World { val streetsOfAmsterdam = listOf("Herengracht", "Prinsengracht") val streetsOfBerlin = listOf("Unter den Linden","Tiergarten") val streetsOfMaastricht = listOf("Grote Gracht", "Vrijthof") val countries = listOf( Country("Netherlands", listOf(City("Maa.. 2023. 12. 4.
[TIL • 20231203] #13 (안드로이드 2기 본캠프) 📖 Today I Learned 🔮 학습 및 노트 정리 개인 과제: 호텔예약프로그램 레벨2랑 레벨3를 거의 완성했다. (https://occhiolism.tistory.com/44) (https://occhiolism.tistory.com/46) 레벨 2를 끝낸 줄 알고 레벨 3를 푸는데 레벨 1이랑 레벨 2 에서 구현하지 않았던 기능을 발견했다. 앞으로 더 꼼꼼해질 필요가 있는 것 같다. data class를 응용하여 사용하고 싶어서 data class 에 대해 공부했다(https://occhiolism.tistory.com/43). 처음 코드를 보면 이해가 안되기에 압도당하는 기분이 드는데 막상 공부해보면 그닥 어렵지 않은것 같다. 너무 겁먹지 말고 찬찬히 패턴을 익혀야 할 것 같다. sortBy 를.. 2023. 12. 3.