반응형

분류 전체보기 78

[leetcode] 189. Rotate Array

문제 풀이 첫 번째 예제(nums = [1,2,3,4,5,6,7], k = 3)를 그리면 아래와 같다. 초록색 네모 그룹을 1번 그룹이라고 하고 파란색 동그라미 그룹을 2번 그룹이라고 할 때 결과는 2번 그룹과 1번 그룹의 순서를 서로 바꿔주면 된다. 1번 그룹 : 0 ~ k-1 2번 그룹 : k ~ input.length-1 다시 그림으로 간략하게 표현하면 다음과 같다. 화살표는 숫자의 오름차순 정렬을 표현했다. 결과가 나오려면 3번의 reverse를 수행해야 한다. 2번 그룹 reverse 1번 그룹 reverse 전체 그룹 reverse reverse 과정을 그림으로 표현하면 아래와 같다. 코드 class Solution { public void rotate(int[] nums, int k) { i..

알고리즘 2021.10.15

Flutter 설치 및 시작하기(macOS, IntelliJ)

Flutter SDK 설치 플러터 앱을 만들기 위해서는 먼저 Flutter SDK를 설치해야 한다. Flutter SDK에는 플러터 컴파일러, 프로젝트 생성기, 디바이스 관리자, 문제 진단 툴 등이 포함되어 있다. Flutter 홈페이지에 각자 사용하는 OS를 선택하자. 여기서는 macOS를 기준으로 설명하겠다. Flutter SDK 최신 stable 버전을 다운로드 받고 파일의 압축을 풀어준다. .bashrc 경로를 추가해준다. export PATH="$PATH:/Users/Your_User/Your_Dev_Folder/flutter/bin" 경로가 잘 설정되었고 flutter가 설치되었는지 확인해보자. # 경로 확인 $ echo $PATH # flutter 설치 확인 $ which flutter $ ..

Flutter 2021.10.11

[leetcode] 784. Letter Case Permutation

문제 풀이 기본적으로 탐색하는 character가 문자면 소문자, 대문자로 변환하고 숫자면 다음 character로 넘어갔다. 마지막까지 완료하면 새로운 문자열을 반환하였다. 개념을 그림으로 표현해봤다. 주어진 문자열이 "a1b2" 이면 결과로 ["a1b2", "a1B2", "A1b2", "A1B2"] 가 반환된다. dfs 함수를 만들고 character가 문자면 두 갈래(소문자, 대문자)로 나눠서 계속 함수를 호출해 풀었다. 코드 class Solution { fun letterCasePermutation(s: String): List { val result = arrayListOf() dfs(s.toCharArray(), 0, result) return result } fun dfs(target: C..

알고리즘 2021.10.04

[leetcode] 733. Flood Fill

문제 풀이 주어진 2차원 배열에서 상하좌우 4방향으로 시작위치의 색과 같은 색이면 새로운 색으로 칠하면 되는 문제이다. dfs, bfs 풀이로 풀면 된다. 처음에 아래와 같이 작성했다가 Time Limit Exceeded 나왔다. class Solution { fun floodFill(image: Array, sr: Int, sc: Int, newColor: Int): Array { val baseColor = image[sr][sc] fun fill(row: Int, col: Int) { if (row !in image.indices || col !in image[0].indices || image[row][col] != baseColor) { return } image[row][col] = newCo..

알고리즘 2021.10.03

코틀린 배열

Arrays 코틀린 배열은 타입 파라미터를 받는 클래스다. 다른 제네릭 타입에서 처럼 배열 타입의 타입 인자는 객체 타입이 되므로 Array 같은 타입을 선언하면 박싱된 정수의 배열(java.lang.Integer[])이 된다. class Array private constructor() { val size: Int operator fun get(index: Int): T operator fun set(index: Int, value: T): Unit operator fun iterator(): Iterator // ... } get : 특정 인덱스의 원소 값을 반환 , indexing operator([])로 호출 가능 set : 특정 인덱스의 원소 값을 삽입, indexing operator([])로..

Kotlin 2021.10.02

[leetcode] 278. First Bad Version

문제 풀이 bool isBadVersion(version) 함수가 주어지고 Bad가 처음 발생한 버전을 찾는 문제이다. 이진 탐색을 이용해서 풀면 되는 문제다. Kotlin으로 풀었는데 한 가지 주의할 점은 middle를 구할 때 (high + low)/2 이용하면 Integer 범위를 초과할 수 있어 Time Limit Exceeded 이 나온다. 대신에 low + (high - low)/2 를 이용하면 해결할 수 있다. (low + high)/2 = low + (high-low)/2 코드 /* The isBadVersion API is defined in the parent class VersionControl. def isBadVersion(version: Int): Boolean = {} */ c..

알고리즘 2021.09.26
반응형