분류 전체보기 (96) 썸네일형 리스트형 함수형 프로그래밍 함수형 프로그래밍이란?자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다.객체 지향 프로그래밍에서 객체가 1급 시민으로 분류된다면, 함수형 프로그래밍은 함수가 1급 시민으로 분류된다.1급 시민변수에 담을 수 있다.함수의 인자로 전달할 수 있다.함수의 반환값으로 전달할 수 있다.1급 함수1급 시민의 조건을 만족하면서 아래의 조건을 추가로 만족해야 한다.런타임에 생성이 가능하다.익명으로 생성이 가능하다.참고로 코틀린은 1급 함수이다.참조 투명성참조 투명성은 순수 함수의 개념과 비슷하다.순수 함수란 주어진 값에 대한 결과 값이 제공되는 함수다. 참조 투명성이란 동일한 입력 값에 대해 항상 동일한 출력 값을 보장하는 특성을 참조 투명성이라고 한다.함수가 외부.. 운영체제의 메모리 관리 운영체제의 종류에는 대표적으로 Windows, Linux, MaxOS 가 있습니다.그 외에도 많이 있지만 자주 사용되는 OS는 위와 같습니다.그렇다면 OS는 무엇이고 어떤 일을 하는 녀석일까요? 우선 컴퓨터 시스템은 하드웨어와 소프트웨어로 구성되어 있습니다.소프트웨어는 하드웨어에 의해 실행되는데 하드웨어에는 CPU와 메모리, 다양한 입출력 장치로 구성되어 있습니다.운영체제가 없어도 하드웨어가 동작하긴 하지만 소프트웨어인 프로그램이 운영체제 환경에서 작성되고, 실행되고 있습니다.운영체제의 주 목적은 컴퓨터 시스템의 자원들을 효율적으로 관리하고 사용자에게 서비스를 제공하는 것입니다.운영체제가 관리하는 자원에는 물리적 자원과 추상적인 자원이 있습니다.물리적 자원: CPU, 메모리 등과 같은 하드웨어추상적 자원.. SearchView SearchView는 검색창을 구현할 때 사용한다. 보통 사용 유형은 Toolbar와 함께 사용하거나, SearchView를 따로 사용하는 유형이 있다. 1. SearchView iconifiedByDefault true : 아이콘 상태 >> 클릭 시 입력창 표시false : 항상 입력창 표시 binding.searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener{ override fun onQueryTextSubmit(query: String?): Boolean { // TODO Enter 입력 시 호출되는 함수 binding.searchView.c.. TimePicker TimePicker는 말 그대로 시간을 설정할 때 사용한다. 갤럭시 알림 앱에 시간을 선택하는 창이 대표적인 예이다. 사용 방법xml timePickerMode : TimePicker의 형태를 결정한다.clock : 아날로그 시계spinner : 디지털theme : TimePicker의 디자인 디자인 설정하는 방법우선 themes.xml에서 TimePicker 디자인에 대한 설정을 해주어야 한다. themes.xml...... timepicker.xml textSize : 글씨 크기textColorPrimary : 글씨 색상colorControlNormal : 언더 바 색상android:color/transparent : 부모 색과 같게 설정, 투명이라고 보면 됨 데이터 처리val cal = Calen.. [Layout] CoordinatorLayout CoordinatorLayout 이란?위와 같이 Title과 같은 Toolbar를 상단에 크게 구성하며, 스크롤 시 Title만 남기고 나머지는 사라지는 효과를 주는 레이아웃이다. 반대로 스크롤하면 다시 나타난다. 구조 CoordinatorLayout의 구조는 위와 같다. 1. AppBarLayout: Toolbar를 포함한 상단을 다양한 방법으로 크게 구성하고 싶을 때 사용하는 레이아웃주로 이미지와 toobar를 조합하여 사용한다. ex) 넷플릭스 app:fitsSystemWindows : 가능한 영역까지 확장해주는 기능 2. CollapsingToolbarLayout: 스크롤 시 접히는 부분으로 해당 레이아웃에서 고정 View를 제외한 나머지 View들은 스크롤 시 사라진다.AppBarLay.. [프로그래머스] 풍선 터트리기 with Kotlin 문제일렬로 나열 된 풍선 n개가 주어진다.풍선엔 각각의 번호가 부여되어 있으며, 다음 과정을 통해 풍선을 하나만 남기려고 한다.임의의 인접한 두 풍선을 고른 뒤, 두 풍선 중 하나를 터트립니다.터진 풍선으로 인해 풍선들 사이에 빈 공간이 생겼다면, 빈 공간이 없도록 풍선들을 중앙으로 밀착시킵니다.이때 번호가 더 큰 풍선을 터트려야 하며, 딱 한번 번호가 작은 풍선을 터트릴 수 있다.마지막까지 남을 수 있는 풍선의 개수를 반환하여라. 풀이방법(핵심 아이디어는 다른 사람 블로그를 참조했습니다.)핵심 아이디어지정한 풍선이 A라고 할 때, A의 양 옆의 풍선들의 최소값이 A보다 크다면 A는 마지막까지 남을 수 있다.양쪽 중 한쪽만 최소값이 커도 한 번의 기회를 사용하면 마지막까지 남을 수 있다.다만 양쪽 다 .. [프로그래머스] 부대복귀 with Kotlin 문제n: 총 지역 수roads: 연결되어 있는 두 지역의 정보sources: 각 부대원이 위치한 서로 다른 지역의 정보destination: 강철부대가 위치한 지역두 지역간의 길을 통과하는데 걸리는 시간은 모두 1이다.sources의 지역에 있는 각 부대원들은 강철 부대로 최단 시간 복귀하고자 한다.각 부대원들이 복귀까지 걸리는 최단 시간을 반환하는 문제복귀가 불가능한 부대원은 -1을 반환한다. 풀이 과정각 지역별로 연결되어 있는 타지역의 정보를 저장 (hashMap)destination을 1번 노드로 설정한 후, 각 지역 별 노드를 배열에 저장각각의 인덱스가 지역번호가 된다.저장은 1번의 hashMap을 이용한 BFS를 사용노드는 복귀까지의 소요 시간이 되므로, 노드 - 1 == 복귀까지 걸리는 시간이.. [프로그래머스] 가장 긴 팰린드롬 with Kotlin 문제앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다.문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요.예를들면, 문자열 s가 "abcdcba"이면 7을 return하고 "abacde"이면 3을 return합니다. 제한사항문자열 s의 길이 : 2,500 이하의 자연수문자열 s는 알파벳 소문자로만 구성 풀이 과정for문으로 2500부터 내려오면서 i의 길이만큼 문자열 s를 잘라서 탐색탐색 방법 >> 문자열 중간부터 양쪽으로 문자가 같은지 다른지 확인팰린드롬이 있다면 반복문 종료 이후 i 반환문자열을 잘라서 확인하는 방법substring >> 편하긴 하지만 효율성 1번에서 시간초과 나옴시작.. [프로그래머스] 2020 카카오 인턴쉽 경주로 건설 with Kotlin 문제크기가 n*n인 1과 0으로 이루어진 2차원 배열이 주어진다.시작은 0,0 이며 도착지는 n-1, n-1 이다. 1은 벽으로 이루어져있어 지나갈 수 없고, 직선은 100의 비용이, 코너는 500의 비용이 소모된다.시작부터 도착지점까지 도로를 건설한다고 할 때, 건설할 수 있는 최소 비용의 금액을 반환하여라. 자세한 문제는 프로그래머스에서https://school.programmers.co.kr/learn/courses/30/lessons/67259# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이 과정벽을 끼고 도착지까지의 최소 거리를 구하는 문제의.. [프로그래머스] 입국 심사 with Kotlin 문제대기중인 n명과 각 심사관마다 걸리는 소요 시간이 times가 매개변수로 주어질 때, 모두 통과하는 최소 시간을 구하여라 풀이 과정1. 이진 탐색을 사용하여 시간을 탐색한 후2. 해당 시간에 통과할 수 있는 사람의 수를 구한 뒤3. 통과할 수 있는 사람의 수가 n과 같다면 반환 class Solution { fun solution(n: Int, times: IntArray): Long { var start: Long = 0 var end: Long = times.maxOf{it}.toLong() * n while(start 이전 1 2 3 4 ··· 10 다음