목록분류 전체보기 (99)
굥뷰를 햡시댜
1. Packages Kotlin에서 소스 파일은 패키지 선언으로 시작됩니다. 모든 콘텐츠(클래스, 함수, ....)는 패키지에 포함됩니다. 패키지를 명세하지 않으면 이름이 없는 기본 패키지에 포함됩니다. -> 따로 import하지 않고 그냥 써도 무방함 package foo.bar fun baz() {} class Goo{} fun main(args: Array) { foo.bar.baz() foo.bar.Goo() } 2. 기본 패키지 package를 import하지 않으면 기본으로 import되는 package가 있습니다. 플랫폼 별로 import되는 package는 다른 부분도 있습니다. //기본으로 import되는 패키지! kotlin.* kotlin.anootation.* kotlin.coll..
1. if else 문 Java와 거의 유사함 ex) 아래와 같이 사용하면 됩니다. var max: Int if(a>b) { max = a } else { max = b } 2. if else 문 if문이 식으로 사용되는 경우 값을 반환함 if식의 경우 반드시 else를 동반해야 함 ex) 아래 코드처럼 if문이 식으로 사용되는 경우 else를 반드시 동반해야 함(+ a, b는 반환되는 값) val max = if(a>b) a else b if식의 branches들이 블록을 가질 수 있음 {...} 블록의 마지막 구문이 반환값이 됨 val max = if(a>b) { print("Choose a") a//반환값 } else { print("Choose b") b//반환값 } 삼항연산자가 없음 -> if문..
1. 기본 타입 Kotlin에서는 모든 것에 멤버함수나 property를 호출 가능하다는 의미에서 모든 타입이 객체입니다. 2. 숫자 Java의 숫자형과 비슷하게 처리됩니다. Kotlin에서 Number는 클래스 입니다. 따라서 Java의 primitive type(기본형)에 직접 접근할 수 없습니다. Java에서 숫자형인 char가 Kotlin에서는 숫자형이 아닙니다.(문자형으로 처리) 3. Literal 10진수 : 123 (Int, Short) Long : 123L Double : 123.5, 123.5e10 Float : 123.5f 2진수 : 0b00001011 8진수 : 미지원 16진수 : 0X0F 4. Underscores in numeric literals ex) Underscore를 사용..
(+ Inflearn -> 새차원님의 Kotlin 강좌를 토대로 공부했습니다.) 1. 패키지 정의 파일 최상단에 정의해야 합니다. 디렉터리와 패키지를 일치시키지 않아도 됩니다. ex) 아래와 같이 선언하시면 됩니다. package my.demo /* ..... */ 2. 함수 정의 함수는 'fun' 키워드로 정의합니다. ex) fun '함수명'('매개변수 이름': '타입', '매개변수 이름': '타입'): '반환형 타입' 순으로 함수를 선언했습니다. fun sum(a: Int, b: Int): Int { return a + b } 함수 몸체가 식(expression)인 경우 return을 생략해서 함수를 작성할 수 있습니다. ex) 몸체가 식인 경우 아래와 같이 함수를 작성하시면 됩니다. 아래와 같이 작..
https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 시뮬레이션 문제입니다. 매번 dfs, bfs 문제만 풀다가 처음으로 시뮬레이션 문제를 풀어봤습니다. 일단 문제 풀이에 앞서, 제가 이 문제를 풀 때 접근했던 생각 4가지를 공유해드리겠습니다. 1. 적의 위치 정보를 따로 저장했습니다. -> 따로 저장해두지 않으면 적의 위치를 찾는 것부터해서 탐색 시간이 길어질 것 같았습니다. 2. 궁수 3명을 각각 다른 위치에 배치하는 경우를 백트래킹으로 구현했습니다. ->..
1. IntelliJ Ultimate 버전 설치 방법 https://kamang-it.tistory.com/35 [개발환경 셋팅하기]IDE설치하기 (Eclipse와 IntelliJ 설치하기), 프로젝트 만들기(4) 참고: [개발환경 셋팅하기]자바(JDK,JRE) 설치하기(1) [개발환경 셋팅하기]환경변수 설정하기(2) - 윈도우즈 전용 [개발환경 셋팅하기]콘솔(cmd,terminal)에서 java 코드 실행하기(3) 이제 jdk와 jre를 다운받았고.. kamang-it.tistory.com 위 사이트를 참고해서 IntellJ Ultimate 버전을 받아야 Spring 프레임워크 사용이 가능하다 (Community에는 없었음.. 이것 때문에 하루종일 삽질함..) 2. Spring 프로젝트 생성 방법 다음..
오늘은 재귀에 대해 다시 학습해 보려고 합니다. 재귀에 대해서 아주 잘 정리가 되어있길래, 바킹독님의 블로그를 참고했습니다. 참고한 사이트 : https://blog.encrypted.gg/731?category=773649 1. 재귀란? - 어떤 함수에서 자기 자신을 다시 호출해 작업을 수행하는 방식 입니다. 자기 자신을 다시 호출할 때에는 현재 함수에서의 입력값보다 더 작은 값을 인자로 넘겨주어야 한다는 특징이 있습니다. 또, 함수의 입력값이 일정 크기 이하일 때에는 더 이상 자기 자신을 호출하지 말고 값을 바로 반환해야 합니다. 이러한 하위 문제를 base condition이라고 부릅니다. 아래 코드는 n을 입력 받아 n!을 계산하는 함수를 작성했습니다. #include using namespace..
이전 게시물인 BFS와 마찬가지로 모든 노드에 방문하는 탐색 방법 입니다. DFS도 BFS와 마찬가지로 기본 틀을 알아두시면 코드를 쉽게 작성하실 수 있습니다. 깊이우선탐색(Depth First Search, DFS) DFS는 말 그대로 탐색할 수 있는 끝까지 갔다가 목적지가 아니면 다시 되돌아와서 탐색하는 방법입니다. 가장 쉬운 예로 미로탐색을 들 수 있습니다.(나중에 관련 문제를 풀고 링크를 첨부해드리겠습니다!) 또, DFS는 스택, 반복문, 재귀 같은 방법으로 구현할 수 있습니다. 하지만 여기서는, 재귀에 대한 설명만 하도록 하겠습니다.(가장 많이 쓰이기 때문) 1. 루트 노드를 방문합니다. 2. 우선순위가 가장 높은 자식노드를 방문합니다. 3. 방문한 노드의 자식노드가 있다면 계속 내려갑니다. 4..