본문 바로가기

분류 전체보기

(100)
[프로그래머스] 부대복귀 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
[프로그래머스] 디스크 컨트롤러 with Kotlin 문제 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 각 작업에 대해 [작업이 요청되는 시점, 작업의 소요시간]을 담은 2차원 배열 jobs가 매개변수로 주어질 때, 작업의 요청부터 종료까지 걸린 시간의 평균을 가장 줄이는 방법으로 처리하면 평균이 얼마가 되는지 return 하도록 solution 함수를 작성해주세요. (단, 소수점 이하의 수는 버립니다) 자세한 문제 내용은 프로그래머스에서https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머..
[프로그래머스] 2024 KAKAO WINTER INTERNSHIP n + 1 카드게임 with Kotlin 문제1~n 사이의 수가 적힌 카드가 하나씩 있는 카드 뭉치와 동전 coin개를 이용한 게임각 카드는 중첩되지 않는다. (카드 10장이 있다면 10장 다 다른 숫자)카드 뭉치에서 n/3개의 카드를 뽑아 갖는다. (카드 뭉치 앞에서부터 n/3개)각 라운드마다 카드 뭉치에서 2장씩 뽑고, 버리거나 동전을 사용하여 갖는다. (동전 하나 당 카드 한 장)카드 뭉치에 카드가 없다면 종료또한 라운드마다 내가 갖고 있는 카드에서 n+1이 되도록 카드 두 장을 제출하고 다음 라운드로 진행제출할 수 없다면 종료(예시는 프로그래머스 참고 바랍니다.)https://school.programmers.co.kr/learn/courses/30/lessons/258707 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭..
[프로그래머스] 2024 KAKAO WINTER INTERNSHIP 주사위 고르기 with Kotlin 문제n개의 주사위가 있다.이 주사위는 6면으로 되어있고, 각 주사위의 번호는 1~n의 번호를 갖고 있다. (1번 주사위부터 n번 주사위) A가 n/2개의 주사위를 가져가고 B가 나머지 주사위를 가져간다.각각 가져간 주사위들을 던져 나온 숫자의 합을 비교해 합이 더 큰 사람이 이기는 게임이다.이때, A가 승리할 확률이 가장 높은 주사위의 조합을 반환하는 문제이다. 예시 ( n = 4 )주사위구성#1[1, 2, 3, 4, 5, 6]#2[3, 3, 3, 3, 4, 4]#3[1, 3, 3, 4, 4, 4]#4[1, 1, 4, 4, 5, 5] 조합에 따른 결과A의 주사위승무패#1, #2596196504#1, #3560176560#1, #4616184496#2, #3496184616#2, #4560176560#3,..
[Kotlin] 정렬 1. sort() 와 sorted()sort() 는 Mutable 상태에 사용하는 메서드이다.sorted()는 Immutable 상태에 사용한다.List는 Immutable 상태이므로 List에 sort()를 사용하면 오류가 발생한다.반대로 Mutable한 Array에 sorted를 사용하면 문제 없이 정렬이 수행된다. 다만, sort()는 기존에 있던 배열 또는 ArrayList에 정렬을 수행시켜주지만sorted()는 정렬된 배열 또는 리스트를 반환한다.val array = arrayOf(4, 3, 2, 1)array.sort()// array : [1, 2, 3, 4]val array2 = arrayOf(4, 3, 2, 1)val newArray2 = array2.sorted()// array2 : ..
추상 클래스 우리가 기존에 사용하던 클래스의 구조는 다음과 같다. class A { private val a = 0 public fun method(){...} } 당연히 A 클래스에 대한 객체를 생성할 수 있고, 객체에 대한 메서드 또한 문제 없이 사용할 수 있다. 추상 클래스는? 반면 추상 클래스의 구조는 다음과 같다. 필드 일반 메서드 추상 메서드 abstract class A { // 필드 lateinit var name: String val age = 20 fun normalMethod(){...} // 일반 메서드 abstract fun method() // 추상 메서드 abstract fun method2(){...} // 오류 발생 } A를 추상 클래스, method 함수를 추상 메서드라고 한다. 추상..
[안드로이드] 안드로이드 버전과 SDK 안드로이드 버전 Windows 버전과 마찬가지로 안드로이드 또한 OS 버전이 존재한다. 안드로이드 버전에 맞춰 SDK(API Level) 또한 업데이트 되며, 버전마다 사용할 수 있는 기능들이 달라지게 된다. 때문에 이전 버전에서 잘 되던 기능이 다음 버전에서 안되는 경우 또한 발생하기도 한다. 안드로이드 버전은 핸드폰 설정 > 휴대전화 정보 > 소프트웨어 정보에서 확인할 수 있으며, S24 기준 안드로이드 14 버전이 설치되어 있다. S23의 경우 출시 당시 13에서 현재는 14로 업데이트 되었다. SDK SDK란 Software Development Kit의 약자로 소프트웨어 개발 도구로 사용되고 있다. SDK에는 개발을 하는데 필요한 각종 코드와 문서들이 포함되어 있다. 안드로이드 프로젝트에 bui..