Home
Yoon-Min
Cancel

Kotlin - ArrayList와 MutableList, 무엇을 써야 할까?

Collection Kotlin Collection “The Kotlin Standard Library provides a comprehensive set of tools for managing collections – groups of a variable number of items (possibly zero) that are signi...

Goodbye, 2023! Welcome, 2024! - [2023년 개발 회고]

2024년을 맞이하며 눈 깜짝할 사이에 2023년이 끝났다. 2023년은 여러 이벤트가 겹치면서 다양한 경험을 할 수 있었다. 사용하는 기술 스택에 대한 이해가 이전보다 나아졌고 무엇보다도 확실한 협업 경험을 통해 협업 능력이 높아진 부분에 대해서 상당히 만족하는 한 해였던 것 같다. 이런 소중한 경험들을 머릿속에 두었다간 금방 잊힐 게 눈에 보여...

(프로그래머스 | Kotlin) - 무인도 여행

해결 방법 그래프 탐색을 이용해서 X 가 아닌 영역들을 찾아서 합산한다. BFS 혹은 DFS 를 사용하면 되는데 나는 DFS 를 사용해서 풀었다. maps 의 모든 원소를 반복문으로 돌면서 X 가 아니면서 방문하지 않은 곳을 시작점으로 두고 DFS 를 돌린다. 그리고 DFS 를 돌면서 방문한 점들은 모두 방문 처리(true)를 한다. 전형적인 DF...

(프로그래머스 | Kotlin) - 메뉴 리뉴얼

해결 방법 가장 간단한 해결 방법은 orders 의 모든 원소들을 course 내의 희망 개수에 맞춰 단품메뉴 조합을 만드는 것이다. 예를 들어서 1번 예시를 보면 orders 의 첫 번째 원소는 ABCFG, course 의 첫 번째 원소는 2 다. 이를 토대로 ABCFG 에서 두 개로 구성된 조합을 모두 꺼내서 map 에 카운트를 증가시킨다. 마...

(프로그래머스 | Kotlin) - 2차원 동전 뒤집기

해결 방법 이 문제는 특정 행, 혹은 열을 뒤집어서 원하는 형태를 만드는 게 핵심이다. 어떤 행, 혹은 열을 뒤집는 순서가 중요한 것이 아니다. 어떤 행, 혹은 열의 상태를 어떻게 할 것인지(뒤집거나 그대로 두거나)가 중요하다. M X N 형태에서 특정 열과 행의 상태를 결정하는 방식으로 로직을 짜면 된다. ​ 뒷면, 앞면의 상태값을 비트로 ...

(프로그래머스 | C++) - 방금그곡

해결 방법 문제에서 주어진 조건을 가지고 시킨 것만 잘 수행하면 된다. musicinfos 에서는 "12:00,12:14,HELLO,CDEFGAB" 형식의 문자열을 원소로 가지고 있다. 이 문자열을 잘 분해해서 처리해야 하는데 순서는 다음과 같다. 문자열을 , 기준으로 split 한 배열을 생성한다. ["12:00", "12:14"...

(프로그래머스 | Kotlin) - 전력망을 둘로 나누기

해결 방법 특정 전선이 끊어지면 하나의 트리는 두 개의 그룹으로 나뉘게 된다. 따라서 두 개의 그룹 각각, DFS 혹은 BFS 를 이용해서 그룹 내 노드의 개수를 카운트한다. 나는 BFS 를 이용해서 노드의 개수를 구했다. 그리고 탐색 시작점은 제거한 전선과 연결된 노드로 지정했다. 첫 번째 입출력 예제 그림에서 4 와 7 이 연결된 전선을 끊은...

(프로그래머스 | Kotlin) - 호텔 대실

해결 방법 이 문제의 핵심은 그리디 알고리즘을 이용하는 것이다. 우선 문제에서 예약 시작 시간과 종료 시간이 여러 개 담긴 배열을 줬으므로 해당 예약 시작 시간을 기준으로 배열을 정렬시킨다. 그리고 정렬된 배열을 가지고 반복문을 돌려서 현재 원소의 예약 시작 시간보다 10분 더 적은 종료 시간이 있는 방 번호를 찾는다. 예를 들어서 현재 예약이 잡...

(프로그래머스 | Kotlin) - 매칭 점수

해결 방법 정말 보자마자 머리가 지끈거리는 문제였다. 카카오 코테 문제를 풀어보면서 문자열 처리 로직을 많이 작성했었는데 설마 html 형식을 통째로 주는 건 상상도 못했다. 필요한 건 크게 url, 키워드, 외부 링크, 이렇게 세 가지다. 여기서 문제는 해당 세 가지를 구하기 위해서 정규식을 사용해야 하는데 나는 정규식을 사용할 때 항상 검색해서...

(프로그래머스 | Kotlin) - 수식 최대화

해결 방법 뭔가 풀이 방법이 다양할 것 같은 문제인데 나는 재귀를 이용해서 해결했다. 연산 기호가 최대 세 개인데 연산 우선순위를 리스트로 표현했다. 예를 들어서 표현식에서 사용된 연산 기호가 * - , 2개라면 만들 수 있는 우선순위 조합은 2개, [[*, -], [-, *]] 이렇게 리스트로 표현이 가능하다. 인덱스가 클수록 연산 우선순위가 높...