일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스택 큐 차이
- 스택 자바 코드
- 2022 플러터 설치
- 2022 플러터 안드로이드 스튜디오
- 자바 다형성
- 객체
- rxjava disposable
- jvm이란
- 안드로이드 레트로핏 crud
- rxjava hot observable
- 서비스 쓰레드 차이
- 안드로이드 유닛 테스트 예시
- ar vr 차이
- ANR이란
- 서비스 vs 쓰레드
- 안드로이드 라이선스 종류
- 안드로이드 레트로핏 사용법
- android retrofit login
- 클래스
- android ar 개발
- 안드로이드 유닛테스트란
- Rxjava Observable
- 안드로이드 os 구조
- 큐 자바 코드
- jvm 작동 원리
- 멤버변수
- 플러터 설치 2022
- rxjava cold observable
- 안드로이드 라이선스
- 안드로이드 유닛 테스트
- Today
- Total
목록알고리즘 문제 풀이/프로그래머스 (212)
나만을 위한 블로그
어떤 문자열에 대해 접미사는 특정 인덱스부터 시작하는 문자열을 의미한다. banana의 모든 접미사는 banana, anana, nana, ana, na, a다. 문자열 my_string이 매개변수로 주어질 때 이 문자열의 모든 접미사를 사전순으로 정렬한 문자열 배열을 리턴하는 함수를 완성하라 첫 글자부터 하나씩 사라지는 형태기 때문에 0부터 문자열의 전체 길이까지의 range를 만든 다음 substring()과 sorted()를 써서 사전 순으로 정렬한다. 이후 리턴타입에 맞춰 배열로 바꿔서 리턴하면 된다. sorted()의 리턴 타입이 List기 때문이다. class Solution { fun solution(my_string: String): Array = (0 until my_string.leng..
문자열 my_string, 정수 n이 매개변수로 주어질 때 my_string 뒤의 n글자로 이뤄진 문자열을 리턴하는 함수를 완성하라 문제를 처음 보고 my_string 뒤에 무슨 문자열이 붙는 줄 알았는데 예시를 보니 그냥 뒤에서 n번째 문자열까지 자르라는 문제였다. class Solution { fun solution(my_string: String, n: Int) = my_string.substring(my_string.length-n) }
길이가 같은 문자열 배열 my_strings, 2차원 정수 배열 parts가 매개변수로 주어진다. parts[i]는 [s, e] 형태로 my_string[i]의 인덱스 s~e까지의 부분 문자열을 의미한다. 각 my_strings 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 리턴하는 함수를 완성하라 문자열 조작이니 StringBuilder를 쓰고, my_strings 배열 안의 문자열에서 일정 범위만큼 잘라내야 하기 때문에 substring()을 쓴다. 어디까지 자를지에 대한 조건 설정에 주의해야 한다. class Solution { fun solution(myStr: Array, parts: Array): String { val sb = StringBuilder() for (i..
문자열 배열 intStrs와 정수 k, s, l이 주어진다. intStrs의 원소는 숫자로 이뤄져 있다. intStrs의 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열을 잘라 정수로 바꾼다. 이 때 변환한 정수값이 k보다 큰 값들을 담은 배열을 리턴하는 함수를 완성하라 주먹구구식으로 풀면 아래와 같다. class Solution { fun solution(arr: Array, k: Int, s: Int, l: Int): IntArray { val result = mutableListOf() for (i in arr.indices) { if (arr[i].substring(s, s + l).toInt() > k) { result.add(arr[i].substring(s, s + l).toInt..
문자열 myString, 2차원 정수 배열 queries가 매개변수로 주어진다. queries의 원소는 [s, e] 형태로 myString의 인덱스 s~e까지 뒤집으란 뜻이다. myString에 queries의 명령을 순서대로 처리한 후의 문자열을 리턴하는 함수를 완성하라 2차원 배열이기 때문에 수열과 구간 쿼리 문제와 비슷하게 풀 수 있지만 문자열 안에서 특정 인덱스 범위의 문자들을 뒤집는 조건 작성에 애먹었다. class Solution { fun solution(my_string: String, queries: Array): String { val arr = my_string.toCharArray() var temp: Char for (j in queries.indices) { for (i in q..
음이 아닌 정수를 9로 나눈 나머지는 그 정수의 각 자리 숫자의 합을 9로 나눈 나머지와 같다고 알려져 있다. 이걸 이용해서 음이 아닌 정수가 문자열 number로 주어질 때, 이 정수를 9로 나눈 나머지를 리턴하는 함수를 완성하라 매개변수인 숫자가 문자열이니 Int로 캐스팅하고 sumOf 함수 쓰면 그만이다. class Solution { fun solution(number: String): Int = number.sumOf { it.toString().toInt() } % 9 }
문자열 my_string, 정수 배열 index_list가 매개변수로 주어진다. my_string의 index_list의 원소들에 해당하는 인덱스의 글자들을 순서대로 이어 붙인 문자열을 리턴하는 함수를 완성하라 문자열에서 정수 배열 indexList의 인덱스와 동일한 위치의 문자를 가져와서 하나의 문자열로 합쳐 리턴하는 것이니 StringBuilder를 썼다. myString의 길이가 최대 1,000자기 때문이기도 하다. 그 외에는 문제대로 코드를 짜면 된다. class Solution { fun solution(myString: String, indexList: IntArray): String { val sb = StringBuilder() indexList.forEach { sb.append(mySt..
풀지 못해서 다른 사람의 풀이를 참고했다. import java.util.* class Solution { fun solution(a: Int, b: Int, c: Int, d: Int): Int { var answer = 0 val nums = IntArray(4) nums[0] = a nums[1] = b nums[2] = c nums[3] = d var multi = 1 Arrays.sort(nums) val dice = IntArray(6) for (i in 0..3) { dice[nums[i] - 1]++ } for (i in 0..5) { if (dice[i] == 4) { answer = 1111 * (i + 1) break } else if (dice[i] == 3) { for (j in ..
그냥 문제에서 제시하는 대로 true, false 적절히 리턴시키도록 하니 풀렸다. class Solution { fun solution(x1: Boolean, x2: Boolean, x3: Boolean, x4: Boolean): Boolean { val y1: Boolean = if (x1 && x2) { true } else if (x1 && !x2) { true } else !x1 && x2 val y2: Boolean = if (x3 && x4) { true } else if (x3 && !x4) { true } else !x3 && x4 return when { y1 && y2 -> true y1 && !y2 -> false !y1 && y2 -> false !y1 && !y2 -> false..