Programming(35)
-
[Kotlin in Action] 3장 함수 정의와 호출
함수 정의와 호출 기능을 코틀린에서 개선 확장 함수, 프로퍼티를 사용하여 자바 라이브러리를 적용하는 법 코틀린에서 컬렉션 만들기 val set = hashSetOf(1, 7, 53) val list = arrayListOf(1, 7, 53) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") 자신만의 컬렉션 기능이 없음 표준 자바 컬렉션을 활용 → 자바 코드와 상호작용 유리 기존 자바 컬렉션 활용 가능 함수를 호출하기 쉽게 만들기 val list = listOf(1,2,3) println(list) // [1, 2, 3] 코틀린에서 파라미터 이름의 인자 중 이름을 명시할 수 있음. joinToString(col, separator=" "..
2023.02.20 -
[Kotlin in Action] 2장 코틀린 기초
2장 1 기본 요소 : 함수와 변수 fun main(args:Array){ println("Hello, world!") } fun : 함수 선언 키워드 파라미터 이름 뒤에 파라미터 타입 함수를 최상위 수준 정의 가능 클래스 안 x wrapper가 여러개 존재. println 세미콜론 x 함수 fun max(a: Int, b: Int): Int{ return if(a>b) a else b } statement : 자신을 둘러싸고 있는 가장 안쪽 블록의 최상위 요소로 존재해야 하며, 아무 값을 만들어내지 않음 expression: 값을 만들어 내며, 다른 식의 하위 요소로 참여 가능 식이 본문인 함수 반환 타입을 생략해도 컴파일러가 함수 본문 식을 분석해 식의 결과 타입을 함수 반환 타입으로 정해줌 fun ..
2023.02.20 -
[BOJ] 21610 마법사 상어와 비바라기 - Python
https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 항상 그렇듯 삼성 구현 문제는 꼼꼼히 구현만 잘 하면 된다. 없어질 구름과 생긴 구름을 잘 관리해 주면 된다. from collections import deque N, M = map(int, input().split()) dx = [0, 0, -1, -1, -1, 0, 1, 1, 1] dy = [0, -1, -1, 0, 1, 1, 1, 0, -1] arr = [list(map(int, i..
2021.10.18 -
[BOJ] 14503 로봇 청소기 - Python
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 이런 문제는 그냥 bfs로 구현하는 거보다 while문 하나로 끝내는게 더 직관적인듯. 그냥 문제에 나와있는 조건별로 구현하면 된다. dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] # 북 동 남 서 N, M = map(int, input().split()) r, c, d = map(int, input().split()) arr = [] for i in range(N): ar..
2021.09.23 -
[BOJ] 19238스타트 택시 - Python
https://www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net 전형적인 삼성 코테문제 bfs 문제로 해결하면 되는데, 조건을 유의해 줘야한다. 현재 위치에서 최단거리가 가장 짧은 승객, 그런 승객이 여러 명이면 행 번호가 가장 작은 승객, 그런 승객도 여러명이면 열번호가 가장 작은 승객. 이 조건만 유의해 가면서 문제를 풀면 된다. findPeoplebfs에서 heap에다가 넣어주면서 위 조건을 모두 만족시키도록 했다...
2021.09.23 -
[BOJ] 21609 상어 중학교 - Python
https://www.acmicpc.net/problem/21609 21609번: 상어 중학교 상어 중학교의 코딩 동아리에서 게임을 만들었다. 이 게임은 크기가 N×N인 격자에서 진행되고, 초기에 격자의 모든 칸에는 블록이 하나씩 들어있고, 블록은 검은색 블록, 무지개 블록, 일반 블록 www.acmicpc.net 전형적인 삼성 유형의 시뮬레이션 문제이다. 조건을 하나하나 안빠뜨리는게 중요한 문제인 것 같다. findMaxAndBreak 함수는 이 조건을 구현한 함수이다. 가장 큰 블록, 무지개 블록 수가 가장 많은 그룹, 행, 열 순으로 정렬 하려고 tuple에 앞에 -를 붙여 정렬시키고 뺄 때 -를 붙여서 빼주었다. rotate는 회전, gravity는 중력을 구현. 마지막에는 findMaxAndBr..
2021.09.22