전체 글
선택 표현과 처리
enum 클래스 enum class Color{ RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET } enum 클래스 안에 프로퍼티나 메소드 정의 가능 enum class Color(val r: Int, val g: Int, val b: Int){ RED(255,0,0), GREEN(0,255,0), BLUE(0,0,255); fun rgb() = (r * 256 + g) * 256 + b } fun main() { println(Color.BLUE.rgb()) } 각 enum 상수를 정의할 때 그 상수에 해당하는 프로퍼티 값을 지정해야함 enum 클래스 안에 메소드를 정의하는 경우 반드시 enum 상수 목록과 메소드 정의 사이에 세미콜론을 넣어함 when으로 enu..
클래스와 프로퍼티
class Person(val name: String) class 이름 : Person 괄호 안의 파라미터는 프로퍼티 클래스의 기본 가시성은 public 프로퍼티 클래스 데이터를 캡슐화 캡슐화한 데이터를 다루는 코드를 한 주체 아래 가두는 것 프로퍼티 자바에서는 필드와 접근자를 묶어서 프로퍼티라고 부름 코틀린 프로퍼티 자바의 필드와 접근자 메소드를 완전히 대신 프로퍼티 선언 시 → val이나 var을 사용 val : 읽기 전용 프로퍼티 var: 변경 가능 class Person( val name: String, var isMarried: Boolean ) 코틀린은 위의 2개의 프로퍼티에 대해 (비공개) 필드와 (공개) 접근자 메소드를 만들어낸다. 단 val의 경우 setter는 만들지 않음! val pe..
함수와 변수
함수로 보는 코틀린 fun main(args: Array){ priintln("Hello, world!") } 발견할 수 있는 특징 함수를 선언할 때 → fun키워드 사용 파라미터 이름 뒤에 그 파라미터의 타입을 쓴다. 함수를 최상위 수준에 정의 가능 꼭 클래스 안에 함수를 넣어야 할 필요 X 배열도 일반적인 클래스와 동일 코틀린에서는 자바와 달리 배열 처리를 위한 문법이 따로 존재 X 표준 출력 : println사용 코틀린 표준 라이브러리는 여러 가지 표준 자바 라이브러리 함수를 간결하게 사용가능하게 해주는 wrapper제공 세미콜론을 붙이지 않아도 된다. 함수 fun max(a: Int, b: Int) : Int { return if (a > b) a else b } 함수 선언은 fun키워드로 시작 ..
클라우드 컴퓨팅이란?
서버 관리의 중요성 - 서버는 관리가 중요하다. - 관리가 잘 안된다면??? - 사용자 만족도 감소 - 이용률 감소 - 24시간 365일 작동 → uptime 유지 - 서버가 잘 관리되도록 아키텍처를 설계 → 에러가 적고 빠르고 비용이 적도록 클라우드 클라우드 컴퓨팅은 사용자의 직접적인 활발한 관리 없이 특히, 데이터 스토리지와 컴퓨팅 파워와 같은 컴퓨터 시스템 리소스를 필요시 바로 제공하는 것 클라우드 = IT 관련 서비스(=서버, 네트웤, DB, 스토리지, 모니터링, 로그, 트러블 슈팅, 개발…) 기술적 설명 -> 가상화 기술 기존의 인프라 모조건 직접 설치 - 서버, 네트워크, 스토리지 서버 구매 전기세 고장 - 수리비용 발열 → 화재 → cooling 시스템 보안 --가상화 : OS를 여러 개 만..
임시변수 없이 변수 바꾸기
두 개의 정수형 변수의 값을 서로 바꾸고자 할 때는 임시변수를 사용하여 두 개의 값을 바꿔주는 경우가 대부분이다. int a = 3; int b = 5; int temp = a; a = b; b = temp;그렇다면 만약 temp를 사용하지 않고 두 개의 정수를 바꿀 수는 없을까? 정답은 바꿀 수 있다!! 단, 오직 두 개의 정수형 변수만 사용하여 바꾸어야 한다. 방법은 다음과 같다. int a = 3; int b = 5; a = a + b; b = a - b; a = a - b;처음 보면 이해가 잘 안될 수도 있다. a = a + b 는 a의 값과 b의 값의 합이다. 여기서 b를 빼면 a 만 남는다. 즉, b = a - b 를 하면 b에 기존의 a 값이 대입이 된다. 그리고 a = a+b 에서 b를 다..
[백준/JAVA] 10989번 수 정렬하기3
수의 범위가 작다면 카운팅 정렬을 사용하여 더욱 빠르게 정렬할 수 있습니다. https://www.acmicpc.net/problem/10989 1. 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 2. 문제 접근 1) 수의 개수 N을 입력받는다. 2) N만큼 반복하면서 정수를 입력받고 이때 max 변수를 이용하여 입력받는 정수의 최대값을 저장한다. 입력받은 정수를 배열에 저장한다. 3) 카운팅 정렬을 이용하여 새로운 배열에 값들의 위치에 대한 index를 저장한다. 4) 새로운 배열을 이용하여 입력받은 정수를 출력한다. 카운팅 정렬 : 카운팅 정렬은 각 배열 원소끼리 직접 비교하는 것이 아닌, 인덱스를 갖고 위치를 찾아나가는 정렬 알고리즘. 3. 코드 import ja..
[백준/JAVA] 2751번 수 정렬하기2
시간 복잡도가 O(nlogn)인 정렬 알고리즘으로 풀 수 있습니다. 예를 들면 병합 정렬, 힙 정렬 등이 있지만, 어려운 알고리즘이므로 지금은 언어에 내장된 정렬 함수를 쓰는 것을 추천드립니다. https://www.acmicpc.net/problem/2751 1. 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 2. 문제 접근 1) 수의 개수 N을 입력받는다. 2) N만큼 반복하며 정수를 입력받고 이를 배열에 저장한다. 3) 배열에 저장된 수들을 병합정렬을 이용하여 오름차순으로 정렬한다. 4) 정렬된 배열을 출력한다. 병합정렬 리스트 길이가 0 또는 1이면 이미 정렬된 것으로 간주. 정렬 되지 않은 리스트는 절반으로 나누어 2개의 리스트로 분할한다. 각 부분 리스트를 ..
[백준/JAVA] 2750번 수 정렬하기
시간 복잡도가 O(n²)인 정렬 알고리즘으로 풀 수 있습니다. 예를 들면 삽입 정렬, 거품 정렬 등이 있습니다. https://www.acmicpc.net/problem/2750 1. 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 2. 문제 접근 1) 수의 개수 N을 입력받는다. 2) N만큼 반복하며 수를 입력받고 이를 배열에 저장한다. 3) 선택정렬을 이용하여 배열을 오름차순으로 정렬한다. 4) 정렬된 배열을 출력한다. 선택정렬 : 주어진 데이터를 기준으로 사용자가 정한 기준에 맞는 최소값을 찾고 배열의 맨 앞의 값과 위치를 바꾸면서 정렬. 참조 : https://velog.io/@agfalcon/%EC%84%A0%ED%83%9D-%EC%A0%95%EB%A0%AC 3..