본문 바로가기

분류 전체보기239

[Kotlin IN ACTION] - Kotlin 클래스와 프로퍼티 2.2 클래스와 프로퍼티 2.2.1 클래스 /* 자바 */ public class Person { private final String name; } /* 코틀린 (값 객체)*/ class Person(val name : String) 클래스에서 코틀린의 기본 가시성은 public 이므로 이런 경우 변경자를 생략해도 된다. 2.2.2 프로퍼티 class Person ( val name : String, // 읽기 전용 프로퍼티, // 코틀린은 (비공개)필드와 필드를 읽는 단순한(공개)게터를 만들어낸다. var isMarried : Boolean // 쓸 수 있는 프로퍼티, // 코틀린은 (비공개)필드, (공개)게터, (공개)세터를 만들어낸다. ) 자바에 있는 필드, 접근자를 한데 묶어 프로퍼티(prope.. 2022. 7. 5.
[git] - remote origin already exists 위와 같은 에러 발생 시? 위 같은 명령어를 쳐서 다른 repo 랑 연결되어 있는지 확인을 한다. 레포가 다를 경우, 연결된 레포를 삭제하고 다시 연결한다. 해결방법 0. Github에서 repo 를 생성했을 것이다. 1. 아래와 같이 명령어 작성하면, 레포 연결을 끊는다. 2. 새롭게 연결할 깃 레포 주소를 가지고 연결한다. 3. 설정된 원격 저장소로 push를 한다. 4. 디렉토리 상의 변경 내용을 스테이징 영역에 추가 5. 깃 커밋하기 6. 깃 푸시하기 2022. 7. 4.
[프로그래머스 *Java] - 124 나라의 숫자 https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 조건 제한 시간 : 1시간 이내 한 번 풀었던 문제였다. 처음 풀 때는 시간을 넉넉히 잡고 푸는 데에만 초점을 두고 풀어서 풀긴 했다. 규칙을 찾기 위해서 계속 써 내려가면서 접근을 했고, 결국 풀었다 이번에는 시간 제한을 두고 풀었다. 하지만, 시간내에 풀지 못했고 접근방식이 잘못 됐었다. 예외처리 해줘야하는 상황이 많아져서 그만 풀고 기존에 풀었던 내 방식을 다시 참고했다. 실패했던 접근방식은 HashMap 을 가지고 10진법을 3진법으로 변환 한 뒤? 각 숫자를 String.charAt 을 통하여 값을 하나씩 뽑아와서 hs.pu.. 2022. 7. 4.
[Kotlin IN ACTION] - Kotlin 함수와 변수 2.2.1 Hello, World! 코틀린에서는 함수 하나로 Hello, World 를 찍는 프로그램을 만들 수 있다. fun main() { println("Hello World") } 함수를 선언할 때, fun 키워드를 사용한다 파라미터 이름 뒤에 그 파라미터의 타입을 쓴다. 함수를 최상위 수준에 정의할 수 있다. (굳이 클래스 안에 함수를 넣어야 할 필요가 없다.) 배열도 일반적인 클래스와 마찬가지다. 코틀린에는 자바와 달리 배열 처리를 위한 문법이 따로 존재하지 않는다. System.out.println() 대신에, println() 이라고 쓴다. 최신 프로그래밍 언어 경향과 마찬가지로 줄 끝에 세미콜론(;) 을 붙이지 않아도 된다. 2.1.2 함수 fun max(a : Int, b : Int) .. 2022. 7. 4.
[알고리즘] - 카운팅 정렬(Counting Sort / 계수 정렬) 카운팅 정렬은 말 그대로 정렬을 위한 알고리즘입니다. 수 많은 알고리즘 중에도 시간 복잡도가 O(n) 으로 효율이 좋습니다. 보통 정렬 알고리즘 중에서 빠른 건, 흔히 알고 있는 퀵정렬, 힙정렬, 합병정렬 등이 있다는 걸 알고 계실겁니다. 이들의 평균 복잡도는 O(nlogn) 인 것에 비하면 카운팅 정렬이 성능이 좋다는 걸 알 수 있습니다. 사실 정렬은 데이터끼리 직접 비교하는 경우가 많습니다. 그렇기 때문에 데이터를 직접 비교한 정렬 알고리즘일 경우, O(nlogn) 을 갖는 시간 복잡도 보다 작아지는 건 어렵습니다. 카운팅 정렬은 어떻게 이를 극복한 것이고, 그럼에도 불구하고 퀵 정렬 같은 알고리즘을 더 많이 사용하는 이유는 무엇일까요? 아래 블로그에 카운팅 정렬하는 방법에 대해서 잘 설명이 되어 있.. 2022. 6. 16.
[백준 *Java] - 트리의 순회(2263) 트리의 순회 2263번: 트리의 순회 첫째 줄에 n(1 ≤ n ≤ 100,000)이 주어진다. 다음 줄에는 인오더를 나타내는 n개의 자연수가 주어지고, 그 다음 줄에는 같은 식으로 포스트오더가 주어진다. www.acmicpc.net 문제 n개의 정점을 갖는 이진 트리의 정점에 1부터 n까지의 번호가 중복 없이 매겨져 있다. 이와 같은 이진 트리의 인오더와 포스트오더가 주어졌을 때, 프리오더를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n(1 ≤ n ≤ 100,000)이 주어진다. 다음 줄에는 인오더를 나타내는 n개의 자연수가 주어지고, 그 다음 줄에는 같은 식으로 포스트오더가 주어진다. 출력 첫째 줄에 프리오더를 출력한다. 접근 방식 이 문제에서 중요한 부분을 2 가지로 나눌 수 있을 거 같습니다. .. 2022. 6. 10.
[git] - Git push 오류 해결방법(Updates were rejected because the tip of your current branch is behind) 단 주의해야합니다. push 를 할 때, 이러한 에러를 만나 볼 수 있습니다. push가 안되고 저런 에러가 나오는 이유는, 데이터 유실 등 문제가 있을 수 있는 부분이 존재하여, git에서 push 처리 되지 않도록 error 를 띄우는 것입니다. 근본적인 이유, 때에마다 다르니 확인하고 해결하면 좋을 거 같습니다. 임시방편으로 해결책 방법 두 가지를 소개해드리겠습니다. 첫 번째로는 git push origin +master master 앞에 '+' 를 붙이게 되면, 강제 명령으로 강제적으로 push를 하게 됩니다. 데이터 유실 등 위험을 감수하고 push를 할 시에, 이 방법을 사용하면 됩니다. 두 번째로는 똑같이 강제로 push하는 방법입니다. git push origin master -f 위와 같은 방법은 강제로 p.. 2022. 6. 10.
[백준 *Java] - 하노이 탑 이동 순서(11729) 하노이 탑 이동 순서 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야.. 2022. 6. 9.