일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스택 자바 코드
- android retrofit login
- 안드로이드 레트로핏 사용법
- 안드로이드 라이선스
- jvm 작동 원리
- 스택 큐 차이
- Rxjava Observable
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 유닛 테스트 예시
- 안드로이드 os 구조
- rxjava hot observable
- ar vr 차이
- 클래스
- 객체
- android ar 개발
- 안드로이드 유닛테스트란
- jvm이란
- ANR이란
- 안드로이드 라이선스 종류
- 플러터 설치 2022
- 자바 다형성
- 2022 플러터 설치
- 큐 자바 코드
- rxjava disposable
- 멤버변수
- 서비스 vs 쓰레드
- 안드로이드 레트로핏 crud
- 서비스 쓰레드 차이
- rxjava cold observable
- 안드로이드 유닛 테스트
- Today
- Total
목록알고리즘 문제 풀이/프로그래머스 (212)
나만을 위한 블로그
선분 3개로 삼각형을 만들려면 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 한다. 삼각형의 세 변의 길이가 담긴 배열 sides가 매개변수로 주어질 때, 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 리턴하는 solution()을 완성하라 내림차순 정렬해서 2번, 3번 값 더한 다음 1번 값보다 작은지 판단해서 숫자를 리턴시키면 된다. class Solution { fun solution(sides: IntArray): Int { val list = sides.toList().sortedDescending() return if (list[1] + list[2] > list[0]) { 1 } else { 2 } } } 다른 사람의 풀이를 참고하니 굳이 내림차순 정렬하지 않아도 ..
매개변수로 주어진 my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 리턴하는 solution()을 완성하라 문자열을 리스트로 만들고 중복된 걸 없앤 다음 문자열로 만들어 리턴하면 되는 간단한 문제다. class Solution { fun solution(str: String) = str.toList().distinct().joinToString("") }
매개변수로 주어진 문자열 배열 strlist 각 원소의 길이를 담은 배열을 리턴하는 solution()을 완성하라 주먹구구식으로 푼다면 아래와 같다. class Solution { fun solution(strList: Array): IntArray { val a = arrayListOf() for (i in strList) { a.add(i.length) } return a.toIntArray() } } 이것을 간결하게 만든다면 아래처럼 할 수 있다. class Solution { fun solution(strList: Array) = strList.map { it.length }.toIntArray() }
숫자와 "Z"가 공백으로 구분돼 담긴 문자열이 주어진다. 문자열의 숫자를 차례대로 더한다 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻이다. 숫자와 "Z"로 이뤄진 문자열 s가 주어질 때, 구한 값을 리턴하는 solution()을 완성하라 "Z"가 있는 인덱스와 "Z" 앞 요소의 인덱스를 제외한 나머지 숫자값들의 합을 구하면 되는데, 이상한 곳에서 삽질하느라 풀지 못했다. class Solution { fun solution(s: String): Int { val list = s.split(" ").toMutableList() var sum = 0 while (list.contains("Z")) { list.removeAt(list.indexOf("Z") - 1) list.removeAt(l..
자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 리턴하는 solution()을 완성하라 소인수분해 공식도 확인했지만 손을 대지 못했던 문제다. 아래는 참고한 자바 풀이 링크고 그 밑은 자바 코드를를 코틀린으로 변환해 통과한 코드다. https://velog.io/@morgankim/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-Java-%EC%86%8C%EC%9D%B8%EC%88%98%EB%B6%84%ED%95%B4 [프로그래머스 / Java] 소인수분해 쉬운 방법을 생각 못하고 자꾸 list 에 넣기만 하려고 해서 큰일이다ㅠ 항상 최선의 방법을 ^먼저^ 생각해보는 습관을 가져야겠다. stream 도 조금 더 익숙해질 필요가 있..
문자열이 매개변수로 주어질 때 문자열 안의 모든 자연수들의 합을 리턴하는 solution()을 완성하라 이것도 먼저 주먹구구식으로 풀어봤다. class Solution { fun solution(str: String): Int { val a = str.split("") var result = 0 for (i in a.indices) { if (a[i].toIntOrNull() != null) { result += a[i].toInt() } } return result } } 이것은 아래처럼 줄일 수 있다. class Solution { fun solution(str: String) = str.filter { Character.isDigit(it) }.sumOf { it.digitToInt() } } di..
문자열이 매개변수로 주어질 때, 문자열 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 리턴하는 solution()을 완성하라 먼저 주먹구구식으로 풀었다. class Solution { fun solution(str: String): IntArray { val mapList = str.map { Character.isDigit(it) } val a = str.split("") val result = arrayListOf() for (i in a.indices) { if (a[i].toIntOrNull() != null) { result.add(a[i].toInt()) } } return result.sorted().toIntArray() } } map을 써서도 시도해 봤는데 잘 안 되서 다른 사람의 풀이..
영어에선 a, e, i, o, u 5가지 알파벳을 모음으로 분류한다. 문자열이 매개변수로 주어질 때 모음을 제거한 문자열을 리턴하는 solution()을 완성하라 아래는 주먹구구식 풀이 방법이다. class Solution { fun solution(str: String): String = str.split("").filter { !it.contains("a") && !it.contains("e") && !it.contains("i") && !it.contains("o") && !it.contains("u") }.joinToString("") } 통과했지만 filter {} 안의 조건이 너무 장황해서 가독성은 안 좋아 보인다. 다른 사람이 좀 더 간결하게 푼 코드가 있어 확인해 봤다. class Solu..
i 팩토리얼(i!)은 1부터 i까지 정수의 곱을 의미한다. 5! = 5 * 4 * 3 * 2 * 1이다 정수 n이 주어질 때 조건을 만족하는 가장 큰 정수 i를 리턴하는 solution()을 완성하라 처음 풀 때에는 손도 대지 못해서 포기했던 문제인데 제한사항과 입출력 예를 보니 그제서야 어떻게 하면 좋을지 떠올랐다. 아쉽지만 이미 다른 사람의 풀이를 봤으니 어쩔 수 없다. class Solution { fun solution(n: Int): Int { var answer = 0 for (i in 10 downTo 1) { if (factorial(i)
정수 배열 numbers가 매개변수로 주어진다. numbers의 원소 중 2개를 곱해 만들 수 있는 최댓값을 리턴하는 solution()을 완성하라 숫자 2개를 곱해서 만들 수 있는 가장 큰 값을 리턴하면 되기 때문에 리스트를 정렬한 다음 내림차순이면 0번, 1번 요소를 꺼내와 곱하면 되고, 오름차순이면 마지막, 마지막 - 2번 인덱스의 요소를 꺼내와 곱하면 된다. 난 sorted()를 썼기 때문에 아래와 같이 작성했다. class Solution { fun solution(numbers: IntArray): Int { val list = numbers.sorted() val a = list.last() val b = list[list.size - 2] return a * b } } for문을 사용하진 ..