분류 전체보기 91

[코틀린(Kotlin)] Intent, findViewById

Intent findViewById Intent의 활용 - 액티비티 간 화면 전환 및 데이터를 전달하는 기능 Intent를 활용해서 간단한 기능의 버튼 만들기 xml 파일에서 버튼을 두 개 만들어준다 한 개는 단순히 네이버로 연결, 다른 한 개는 통화버튼 변수(myIntent)를 선언해 주고 암시적 인텐트?를 사용해서 Uri.parse()를 이용해서 네이버 홈페이지 주소를 적어준다 startActivity(변수)로 전환할 액티비티를 호출한다 *암시적 인텐트로는 웹 브라우저 열기, 전화 걸기, 구글 맵 열기, 메시지 보내기, 카메라 기능 등이 있다고 한다 onButton1Clicked 결과(네이버 홈페이지) onButton2Clicked 결과(010-1234-5678 통화) 이 외에도 많은 기능이 있지만 ..

[프로그래머스/코틀린(Kotlin)] 배열 원소의 길이

문자열 배열 strlist의 각 원소의 길이를 담은 배열을 리턴 시키기 예시) 풀이 map{}을 활용하기 제출 코드 (코드 해석해 보기) 4) strlist.map{}으로 strlist의 인자를 바꿔준다(e를 e.length로) 5) .length를 활용해서 각 인자들의 길이를 IntArray인 answer에 추가시켜 준다 answer를 굳이 빼고 싶다면.. // 제출 코드에 굳이 answer를 적지 않으려면 class Solution { fun solution(strlist: Array): IntArray { return strlist.map{ e -> e.length}.toIntArray() } }

[프로그래머스/코틀린(Kotlin)] 양꼬치

하나의 12,000원인 양꼬치 n인분과 2,000원인 음료수 k개를 계산해서 얼마를 지불할지 리턴하기 단, 양꼬치를 10인분 먹으면 음료수 하나가 서비스이다 예시) 풀이 12000*n + 2000*k에 예외처리(n이 10일 때마다 -2000)를 넣어준다 제출 코드 (코드 해석해 보기) n을 10으로 나눠서 나오는 몫만큼 k에서 빼준다 근데 지금 이걸 쓰고 있는 순간에 드는 생각인데 n/10의 몫이 k보다 크면 -가 나오지 않나?라는 생각이 들었다 var a = n/10 if(n>9) { (12000*n) + (2000*k) - (2000*a) } else { (12000*n) + (2000*k) } 이렇게 수정해도 될 것 같다

[코틀린(Kotlin)] 키오스크 프로그래밍 (2

Menu.kt 생성 저번시간에 각각의 메뉴들 Order함수에서 println에 적던 것들을 수정했다 Menu라는 클래스에 생성자를 이용해서 메뉴이름, 가격, 정보를 스트링타입으로 받아서 각각의 메뉴.kt들에 맞게 바꿀 수 있도록 했다 각 클래스들 코드 수정 이전에는 7~11 라인에 println을 이용해서 띄어쓰기까지 손수 적어서 띄웠던 것을 Menu클래스에서 정의해 놓은 대로 가져와서 사용하도록 수정해줬다 메뉴를 선택했을 때 메시지를 띄워주는 것도 이를 활용해서 info부분만 "주문"으로 문구를 바꿔줬다 다른 클래스들(Beer.kt, Drinks.kt, FrozenCustard.kt)도 마찬가지로 수정해줬다 오전에 완전 기초 알고리즘 풀기와 클래스의 상속과 추상화에 대해서 특강을 들었는데, 특강을 들을..

[깃허브(GitHub)] 깃허브를 활용하는 협업(Branch, Pull Requests)

깃허브를 사용해서 팀원들과 협업하기 위해선 Pull Requests 기능을 많이 쓴다고 한다 Pull Requests 기능은 특정 기능을 추가/개선 한 *브랜치(branch)를 main 브랜치에 덮어씌우는? 기능이다 (= merge) merge를 사용하지 않고도 깃허브에서 원격으로 코드를 바꿀 수 있으며, 버그나 에러의 상황에 대비하기 위해 상용화버전 말고 테스트 버전을 두어 미리 시험해 볼 수 있기도 하다 *브랜치(Branch) 독립적으로 어떤 작업을 진행할 수 있게 도와준다 필요에 의해 만들어지는 각각의 브랜치들은 다른 브랜치에 영향을 받지 않기 때문에 여러 작업을 동시에 할 수 있다 (예시에서 메인 프로젝트는 Master, Feature는 브랜치이며 버그나 에러 보완에도 역추적이 용이하다는 장점이 ..

[Kotlin 문법] 코틀린 심화

유용한 기능 확장함수 비동기 프로그래밍 쓰레드 코루틴 쓰레드와 코루틴 유용한 기능 자료형을 변환할 수 있다 일반 자료형 간의 변환 예시 var num1 = 20 var num2 = 30.2 var num3 = num2.toInt() var num4 = num1.toDouble() var strNum5 = "10" var strNum6 = "10.21" var num5 = Integer.parseInt(strNum5) var num6 = strNum6.toDouble() println("num3: $num3") println("num4: $num4") println("num5: $num5") println("num6: $num6") // 출력 num3: 30 num4: 20.0 num5: 10 num6: ..

[코틀린(Kotlin)] 계산기 (Lv3)

Lv3 : AddOperation(더하기), SubstractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 연산 클래스들을 만든 후 클래스 간의 관계를 고려하여 Calculator 클래스와 관계를 맺기 Lv4 : AddOperation(더하기), SubstractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 연산 클래스들을 AbstractOperation이라는 클래스명으로 만들어 사용하여 추상화하고 Calculator 클래스의 내부 코드를 변경한다 Lv3 구현 각 Operation.kt 생성 각 더하기, 빼기, 곱하기, 나누기 Operation 클래스 파일들을 만들어주고 각각에 맞는 ..

[Kotlin 문법] 객체지향 프로그래밍의 심화

접근제한자 예외 처리의 활용 지연초기화 널 세이프티 (Null Safety) 배열 컬렉션 Single-expression function 싱글턴 접근제한자 변수나 메서드의 접근을 제한할 수 있다 코틀린에서는 public, private, internal, protected로 접근을 제한한다 객체를 이용해서 변수나 메서드를 호출할 수 있는지의 여부를 접근이라고 한다 용어 정리 프로젝트 - 최상단 개념 를 포함한다 모듈 - 프로젝트 아래의 개념이고 를 포함한다 패키지 - 모듈 아래의 개념이고 를 포함한다, 일반적인 디렉터리 접근 제한자의 종류 public: 명시하지 않으면 기본적으로 public이다 (어디서나 접근 가능) private: 동일한 클래스 내부에서만 접근할 수 있다 internal: 같은 모듈 ..

[코틀린(Kotlin)] 계산기 (Lv1, Lv2)

Lv1 : 더하기, 빼기, 나누기, 곱하기 연산을 수행할 수 있는 Calculator 클래스를 만들고, 클래스를 이용하여 연산을 진행하고 출력하기 Lv2 : Lv1에서 만든 Calculator 클래스에 출력 이후 추가 연산을 가능하도록 코드를 추가하고, 연산 진행 후 출력하기 Lv1 구현 6) num1을 double타입으로 입력받는다 7) operator를 string타입으로 입력받는다 ("+", "-", "/", "*") 8) num2를 double타입으로 입력받는다 12) when(operator){}를 사용해서 각각의 string 경우에 result를 반환한다 29) else = "+", "-", "/", "*" 외에 다른 문자를 입력했을 경우 결과) println("수식을 입력하세요") 12(nu..