일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 os 구조
- jvm 작동 원리
- 큐 자바 코드
- 멤버변수
- rxjava cold observable
- 스택 큐 차이
- 안드로이드 유닛테스트란
- 안드로이드 라이선스
- 안드로이드 레트로핏 사용법
- jvm이란
- ANR이란
- 서비스 vs 쓰레드
- 자바 다형성
- 클래스
- 안드로이드 유닛 테스트 예시
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 유닛 테스트
- Rxjava Observable
- android retrofit login
- ar vr 차이
- android ar 개발
- 안드로이드 라이선스 종류
- 서비스 쓰레드 차이
- 스택 자바 코드
- 2022 플러터 설치
- 안드로이드 레트로핏 crud
- rxjava disposable
- rxjava hot observable
- 플러터 설치 2022
- 객체
- Today
- Total
목록알고리즘 문제 풀이/프로그래머스 (212)
나만을 위한 블로그
약수 개수가 3개 이상인 수를 합성수라고 한다. 자연수 n이 매개변수로 주어질 때, n 이하의 합성수 개수를 리턴하는 solution()을 완성하라 약수를 구하고 약수 개수가 3개 이상인 경우 리턴하는 것까지는 구현했으나 이상하게 자꾸 에러가 발생하면서 몇 개는 맞고 몇 개는 틀렸다고 나왔다. 고민하다가 찾아보니 매개변수가 1이 들어올 수도 있기 때문에 이 경우까지 모두 처리를 해야만 작동했다. 아래는 참고한 자바 풀이 링크와 코틀린으로 바꾼 코드다. https://mycodingreview.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%ED%95%A9%EC%84%B1%EC%88%98%EC%B0%BE%EA%B8%B0 [프..
직육면체 모양의 상자에 정육면체 주사위를 최대한 많이 채우려고 한다 상자의 가로, 세로, 높이가 저장된 배열 box, 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 리턴하는 solution()을 완성하라 수포자라서 문제를 이해하는 데 오래걸렸다. 핵심은 주사위를 상자에 최대 몇 개나 넣을 수 있는지 계산하는 것이기 때문에 가로, 세로, 높이 별 주사위 모서리(n)가 몇 개 들어가는지 확인한 다음, 직육면체 부피를 구하는 공식인 가로x세로x높이 처리를 해서 리턴하도록 함수를 작성하면 된다. class Solution { fun solution(box: IntArray, n: Int): Int { val a = box[0] / n val b = box[..
정수가 담긴 배열 numbers, 문자열 direction이 매개변수로 주어진다 배열 numbers의 원소를 direction 방향으로 한 칸씩 회전시킨 배열을 리턴하는 solution()을 완성하라 처음에는 배열의 0번 원소를 맨 뒤로 보내느니 마니 하는 로직을 생각했었지만 코틀린이니까 뭔가 간단히 만들어 둔 함수가 없을까 해서 찾아봤더니 있었다. 바로 rotate()다. Collections에 속하기 때문에 import문을 꼭 써줘야 한다. import java.util.Collections class Solution { fun solution(numbers: IntArray, direction: String): IntArray { val aList = numbers.toList() if (direc..
친구들과 동그랗게 서서 공 던지기 게임을 한다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그 다음 사람에게만 던질 수 있다. 친구들의 번호가 들어있는 정수 배열 numbers, 정수 k가 주어질 때 k번째로 공을 던지는 사람의 번호는 무엇인지 리턴하는 solution()을 완성하라 리스트를 복사하고 이어붙여서 풀어야 하는지도 고민해봤지만 그건 너무 오버하는 것 같아서 numbers 배열 안에서 노는 방법을 고민하다가 아래와 같이 코드를 작성했더니 성공했다. class Solution { fun solution(numbers: IntArray, k: Int): Int = numbers[(2 * (k - 1) % numbers.size)] } numbers는 1부터 시작하기 때문에 k에서 1을 뺐고..
정수 배열 num_list, 정수 n이 매개변수로 주어진다. num_list를 2차원 배열로 바꿔 리턴하는 solution()을 완성하라 num_list의 길이를 n으로 나눈 값만큼 배열을 만들고, num_list에서 n개씩 요소를 빼내 만든 배열에 넣는다. 주먹구구식으로 로직을 짰더니 아래처럼 되었다. class Solution { fun solution(numList: IntArray, n: Int): Array { var count = 0 val answer = Array(numList.size / n) { IntArray(n) } for (i in 0 until (numList.size / n)) { for (j in 0 until n) { answer[i][j] = numList[count] c..
사분면은 한 평면을 x축, y축을 기준으로 나눈 네 부분이다. x좌표와 y좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어진다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4를 리턴하는 solution()을 완성하라 조건문을 쓰면 간단하게 구할 수 있다. if를 쓴다면 아래와 같이 할 수 있다. class Solution { fun solution(dot: IntArray): Int = if (dot[0] > 0 && dot[1] > 0) { 1 } else if (dot[0] > 0 && dot[1] 0) { 2 } else { 3 } } when을 쓴다면 아래와 같다. class Soluti..
구슬을 친구들에게 나눠주려고 한다. 구슬은 모두 다르게 생겼다. 머쓱이가 가진 구슬의 개수 balls, 친구들에게 나눠줄 구슬 개수 share가 매개변수로 주어질 때, ball개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 리턴하는 solution()을 완성하라 풀지 못했다. 다른 사람들의 풀이를 보고 디버깅해봐도 왜 이렇게 작동하고 풀리는지 이해가 안 되서 계속 고민해 봐야 할 것 같다. 문제 유형 중 완전탐색이라고 쓰여 있었는데 그것을 사용해 푸는 문제 같다. class Solution { private fun combination(n: Int, r: Int): Int { return if (r == 0 || n == r) { 1 } else { combination(n - 1, ..
가위는 2, 바위는 0, 보는 5로 표현한다. 가위바위보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위바위보를 모두 이기는 경우를 순서대로 나타낸 문자열을 리턴하는 solution()을 완성하라 각 상성에 따라서 이길 수 있는 숫자를 문자열로 만든 뒤 이어붙여서 리턴하면 된다. 아래는 주먹구구식 풀이다. class Solution { fun solution(rsp: String): String { val list = rsp.split("") val s = StringBuilder() for (i in list) { when (i) { "2" -> s.append("0") "0" -> s.append("5") "5" -> s.append("2") } } return s..
모스부호를 해독하는 프로그램을 만들려고 한다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 리턴하는 solution()을 완성하라 Map을 써 보고 배열을 써서도 해 봤지만 풀리지 않았다. 다른 사람의 풀이를 참고했다. class Solution { private val dictionary = mapOf( ".-" to "a", "-..." to "b", "-.-." to "c", "-.." to "d", "." to "e", "..-." to "f", "--." to "g", "...." to "h", ".." to "i", ".---" to "j", "-.-" to "k", ".-.." to "l", "--" to "m", "-." to "n", "---" ..
개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 한다. 장군개미는 5, 병정개미는 3, 일개미는 1의 공격력을 갖고 있다. 체력 23의 여치를 사냥할 때 장군개미 4마리, 병정개미 1마리를 데려가면 더 적은 병력으로 사냥할 수 있다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지 리턴하는 solution()을 완성하라 23이 주어지면 장군개미 공격력인 5로 나눈 다음, 나머지에 3을 나누는 처리(23 % 5 / 3)까지는 잘 작동하는 걸 확인했지만 일개미 부분에서 삽질했다. 결국 다른 사람의 자바 풀이를 참고해서 코틀린으로 작성했다. https://big-huni.tistory.com/entry/%ED%94%84%EB..