Developing Myself Everyday
article thumbnail
H-Index

문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/92341?language=kotlin 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 나의 풀이 이 문제는 filter을 사용해서 간단하게 해결하였다. class Solution { fun solution(citations: IntArray): Int { var answer = 0 for(i in 0..citations.size) { var filter = citations.filter { it >= i } if(filter.size ..

article thumbnail
타겟 넘버

문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/92341?language=kotlin 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 나의 풀이 매우 간단한 dfs 문제이다. 숫자가 담긴 배열을 cnt가 numbers.size가 될때까지 '+' 와 '-'로 나눠서 dfs를 반복 해주면 된다. class Solution { var size = 0 fun solution(numbers: IntArray, target: Int): Int { return dfs(0, 0, numbers, ..

article thumbnail
순열 (Permutation) & 조합 (Combination)

순열이란? 수학에서 순열(Permutation) 또는 치환은 순서가 부여된 임의의 집합을 다른 순서로 뒤섞는 연산이다. 즉, 순열은 정의역과 공역이 같은 일대일 대응이다. n개의 원소의 순서를 뒤섞는 순열의 개수는 n의 계승 n!와 같다. 즉, n 이하의 양의 정수들을 곱한 값이다. 쉽게 말하자면 서로 다른 n개중에서 r개를 선택하는 경우의 수이다. 1. Swap 을 이용한 순열 첫번째는 swap 함수를 만들어서 배열들의 값을 직접 바꾸는 방법이다. 배열의 첫 값부터 순서대로 하나씩 바꾸며 모든 값을 한번씩 swap 한다. depth 를 기준 인덱스로 하여 depth 보다 인덱스가 작은 값들은 그대로 고정하고 depth 보다 인덱스가 큰 값들만 가지고 다시 swap 을 진행한다. 하지만 이 방식은 사전 ..

article thumbnail
컴퓨터 구조(2) - CPU

CPU(Central Procesing Unit) CPU는 명령어의 해석과 자료의 연산, 비교등의 처리를 제어하는 컴퓨터 시스템의 핵심장치이다. 위의 그림이 우리가 배워야할 CPU의 구조이다. 그림만 봤을때는 이게 무엇을 말하는지 이해가 안되는것이 당연하다. 그렇지만 CPU의 구성 요소들을 하나하나씩 배워가면서 어떻게 진행되는지 이해를 하고 다시 봤을때는 매우 쉬운 그림이 될 것이다. CPU의 구성 요소 1. ALU(Arithmetic and Logical Unit) ALU는 레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어 신호를 받아들인다. 그렇게 받아들인 피연산자와 제어 신호로 산술연산, 논리 연산 등 다양한 연산을 수행한다. ALU가 연산을 수행한 결과는 바로 메모..

article thumbnail
컴퓨터 구조(1) - 시작하기

컴퓨터 구조를 알아야하는 이유 언뜻 보면 컴퓨터 구조는 프로그램 개발과는 큰 관련이 없어 보인다. 우리는 컴퓨터 구조를 모르더라도 지금까지 프로그램을 개발해왔기 때문이다. 하지만 좋은 개발자가 되기 위해서는 반드시 컴퓨터 구조를 깊게 이해하고 있어야 한다. 만약 우리가 개발한 프로그램에 사용자가 많아졌다고 생각을 해보자. 이때 우리는 사용자의 정보, 게시글 등을 저장할 저장 장치를 선택해야 한다. 우리는 이때 우리가 스스로 판단해서 장치를 선택해야 한다. 이건 프로그래밍 언어만 안다고 해서 해결할 수 있는 것이 아니다. 우리는 컴퓨터 구조를 이해해서 이런 성능, 용량, 비용 문제를 고려해 개발하여야 한다. 컴퓨터의 구성요소 컴퓨터의 구성 요소는 다음과 같다. 4가지 핵심 부품은 CPU, Memory, I..

article thumbnail
콜라 문제

문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/92341?language=kotlin 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 나의 풀이 사실 이 문제는 엄청 간단한 수학 문제이다. 딱히 고려해야 할 부분도 없어서 간단한 재귀함수로 구현했다. class Solution { var count = 0 fun solution(a: Int, b: Int, n: Int): Int { return coke(a, b, n) } fun coke(a: Int, b: Int, n: Int): ..

article thumbnail
Queue & Stack

Queue 먼저 들어간 자료가 먼저 나오는 자료구조이다. FIFO(First In First Out, 선입선출) 또는 LILO(Last In Last Out, 후입후출) 라는 구조를 갖는다. Method Description add(E e) Queue에 객체를 추가한다. Queue의 남아 있는 space가 없을 경우 exception을 throw한다. element() Queue에 가장 먼저 들어간 객체를 return한다. offer(E e) Queue에 객체를 추가한다. 이때는 exception을 발생시키지 않고 성공 여부에 대해 return한다. peek() Queue에 가장 먼저 들어간 객체를 제거하지 않고 확인한다. poll() Queue에 가장 먼저 들어간 객체를 제거하고 해당 객체를 retur..

article thumbnail
List, Set, Map to Kotlin

우리는 자료구조를 분류할때 선형과 비선형을 기준으로 분류를 했었다. 그리고 분류한 자료구조들을 하나씩 공부해나갈 예정이다. 하지만 그 전에 Collection에있는 List, Set, Map을 학습하고자 한다. Kotlin에는 크게 List, Set, Map 3가지 Collection이 있다. 이 3가지 Collection은 중복을 허용하는지, 순서가 보장되는지에 따라 구분할 수 있다. 참고로, Kotlin Collection은 Mutable Collection과 Immutable Collection으로 구분해 사용한다. 둘의 차이는 변경이 가능한가, 불가능한가이다. List, Set, Map 모두 Mutable과 Immutable Collection을 지원한다. List List는 데이터가 저장될때 필..