ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2024/02/29 BOOTCAMP TIL
    Android 2024. 2. 29. 23:15

    오전 일과 9:30~11:00

     

    알고리즘 5번(숫자 비교하기)

    class Solution {
        fun solution(num1: Int, num2: Int): Int {
            var answer: Int = 0
            if(num1 in 0..10000 && num2 in 0..10000) {
                if(num1==num2) {
                    answer=1 
                } else {
                    answer=-1
                }
            }
            return answer
        }
    }

    → 첫번째 if 문은 num1, num2에 대한 숫자 범위 조건을 걸어주는 것이고, 조건을 만족했을 때 num1과 num2가 같으면 1, 다다르면 -1 을 반환한다. 만약, 숫자 범위를 넘어갈 경우 값 0 을 반환한다!

     

    다른 사람 풀이이에서는

    answer = if(num1==num2) 1 else -1 해당 형태로 간단명료하게 작성하였다!

     

    알고리즘 6번(두 수의 합)

    class Solution {
        fun solution(num1: Int, num2: Int): Int {
            var answer: Int = 0
            if(num1 in -50000 .. 50000 && num2 in -50000 .. 50000) {
                answer = num1+num2
            } 
            return answer
        }
    }

    →  역시 숫자 범위의 제한을 부등호가 아닌 in 을 사용하여 작성하였다

     

    알고리즘 7번(두 수의 나눗셈)

     

    import kotlin.math.round
    class Solution {
        fun solution(num1: Int, num2: Int): Int {
            var answer: Int = 0
            if(num1 in 0..100 && num2 in 0..100) {

                val pre_answer : Double = (num1.toDouble() / num2)*1000
                answer = round(pre_answer).toInt()
                // answer = (num1/num2)*1000 (처음 작성한 코드)
            }
            return answer
        }
    }

    - num1을 실수형으로 바꾸고, Int 형 num2 로 나누면 몫이 아니라 실수 값이 반환된다. 

    - round 메소드를 이용하여 실수의 소수점을 버릴 수 있다.

    package com.example.mbtitest

    import android.util.Log
    import kotlin.math.round
    fun main() {
    solution(1, 16
    }

    fun solution(num1: Int, num2: Int): Int {
    var answer: Int = 0
    if(num1 in 0..100 && num2 in 0..100) {
    val pre_answer : Double = (num1.toDouble() / num2)*1000
    answer = round(pre_answer).toInt()
    println(answer.toString())
    // Log.d("test", answer.toString())
    }
    return answer
    }

    해당 코드를 android studio 에서 실행한 코드이다. 튜터님께 질문을 하였는데, 만약 알고리즘 개발 환경에서 실행이 안될 경우 android studio 에서 먼저 실행을 해보고, 코드를 옮기라고 말씀하셨다!

     

    문제 풀이1) answer = (num1.toDouble()/num2*1000).toInt()

    문제 풀이2) answer = num1*1000/num2


    오전 11:00~13:00: 어제 줌 설명회 복습 

    모든 토글을 열고 닫는 단축키 Windows : Ctrl + alt + t

    복습한 부분을 정리해보았다.


    1. 필수 리눅스 명령어(Git 명령어 아님) → 윈도우 실행 환경의 터미널은 git bash 에서 실행한다!

    1) pwd (print working directory) : 현재 내가 작업하는 폴더 경로를 보여준다.

    * '~' 는 Home(홈) 경로로, 데스크탑(바탕화면)보다 더 상위의 폴더를 말한다.

    2) ls (list) : 해당 폴더 내의 폴더 및 파일 이름을 보여준다.

    3) ls -a (list all) : 숨겨진 파일(보통 . 으로 시작함)을 보여준다.

    4) cd 폴더명 | cd .. | cd 폴더명/폴더명 : change directory

    5) mkdir 폴더 (*mkdir = make directory) : 폴더를 생성한다.

    6) touch 파일 : 파일을 생성한다.

     

    2. Git&Github의 개념

    - Git : 파일, 폴더 복사할 필요 없음 | 변경 기록 가능 | 하나의 폴더 내에서 코드의 변경점을 기록 | 에러 발생 시 과거의 코드 기록으로 쉽게 돌아갈 수 있음 | 버전 관리 도구(형상 관리 도구) | 소프트웨어의 변경사항을 체계적으로 추적 및 통제

    - Github : 온라인 백업, 공유, 협업이 가능한 온라인 코드 저장소

     

    3. Git 필수 명령어

    1) git init : init 은 initialize(초기화, 초기세팅)의 준말로, 코드 관리 시작 명령어이다 | 초기에 한번 입력하면 된다 | 코드 선언 시 ' .git ' 폴더가 생성되는데, 해당 git 폴더는 코드 변경점을 추적 및 기록한다.

    2) git add : 'git add 파일명' 또는 'git add .' 형태로 쓴다 → 저장할 파일을 지정한다. (저장X)

    3) git commit -m "메세지 작성" : m는 message를 의미한다 | 실제 저장 명령어이며 IDE 개발환경 내의 ctrl + s 와 다르다.

    4) git status : 수정되었지만(개발환경 내에서 ctrl+s 저장됨) 터미널에서 commit 되지 않은 파일이 있는지 상태를 확인한다.(코드가 환경에서 ctrl+s가 되었다고 commit 된게 아니다!!!) 

    5) git log : 지금까지 commit 한 히스토리 내역을 볼 수 있다 → 명령어 입력후 'q' 를 통해 나갈 수 있다.

     

    4. 추가 내용

    - git remote add origin <github 주소> : github 주소를 origin 이라는 이름으로 저장한다는 의미이다.

    - git branch -M main : 현재 브랜치명을 main 으로 바꾸는 코드이다 → 만약 이미 브랜치명이 main 이면 해당 코드를 작성하지 않아도 된다.

     

     

    branch 명을 master 에서 main 으로 바꿨는데 나타난 문구(아직 실행X)
    처음 repository를 만들고 Git bash에 입력하는 커멘드 ( echo 줄은 안쳐도 된다! )

     

    git add README.md 대신 git add . 를 입력하면 된다!

    android studio의 Git 화면
    git remote add origin 깃허브url 에서 "error: remote origin already exists" 에러가 나는 경우 → 아래 코드 작성(튜터님)

     

    튜터님으로부터 들은 참고사항

    - 프로젝트의 경우 → 프로젝트 1개당 레퍼지토리 1개이다!

    - 알고리즘 문제의 경우에는 여러개의 알고리즘 문제를 레퍼지토리 1개에 담아도 된다.

    - Git bash 를 사용하기 어려운 경우 android studio 에 있는 terminal 창을 이용할 수 있다.


    14:00~14:30 : TIL 작성법 줌 강의 설명회 들으면서 필기하기

    14:30~15:00 : Git 줌 설명회 pdf 자료 전체 1회 복습

    15:00~17:00 캠프 강의 듣기

    19:00~21:00 깃허브 업로드

     

    git에 직접 3개의 앱 코드를 올리면서 온보딩 주차의 구글폼 작성을 완료하였다.

     3주차 5번째 강의 mbti 앱의 마지막 화면 기능 구현 부분을 듣고, 마무리 하였다 !! (UI와 다르게 기능 구현 부분은 정말 3번정도 계속 영상 돌려보면서 이해할려고 노력했다... 한번 듣고서는 이해가 잘 가지 않았다.)

    'Android' 카테고리의 다른 글

    fold / foldIndexed 함수, 자료형 정리, 증감연산자  (0) 2024.03.05
    2024-03-04 BOOTCAMP TIL  (3) 2024.03.04
    2024/02/28 BOOTCAMP TIL  (7) 2024.02.28
    2024-02-27 BOOTCAMP TIL  (1) 2024.02.27
    2024-02-26 BOOTCAMP TIL  (2) 2024.02.26
Designed by Tistory.