일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- map
- bronze3
- dp
- 테마변경
- LIS
- Silver5
- bronze2
- naver open api
- LV1
- 백준
- RecyclerView
- RETROFIT
- 뷰클래스
- recyclerView 클릭이벤트
- 프로그래머스
- silver4
- gradle설정
- stack
- Kotlin
- 임시저장하기
- 다크모드제한
- 녹음기
- bronze4
- bottom-up
- Top-Down
- Alert Dialog
- Android
- toLong()
- fragment에서 context사용
- silver3
- Today
- Total
목록알고리즘/미분류 (26)
유니 코드
https://school.programmers.co.kr/learn/courses/30/lessons/86051# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 설명] 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. [제한 조건] 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. [입출력 예] numb..
[문제 설명] 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. [제한 조건] x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. [입출력 예] x n answer 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 [-4, -8] [풀이] 방금 풀이한 행렬의 덧셈 문제와 비슷한 문제이다. 아니 오히려 더 쉬운 문제인 것 같기도 하다. 이 문제는 x만큼 증가하는 수 n개를 반환배열에 추가해주기만 하면된다. 행렬의 덧셈 문제와 마찬가지로 배열의 초기화를 할 때 값을 추가해주었다. 다만..
[문제 설명] 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. [제한 조건] 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. [입출력 예] arr1 arr2 return [[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]] [풀이] 두 행렬의 각 원소에 접근하여 더해주는 문제 처음에 생각한 건 이중반복문으로 answer에 각 행렬 원소 더한 걸 추가해주려고 했다. 그런데 answer이 배열이다보니 추가하는 함수가 없었다. 그래서 어떻게 할까 고민..
[문제 설명] 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. [제한 조건] x는 1 이상, 10000 이하인 정수입니다. [입출력 예] arr return 10 true 12 true 11 false 13 false [입출력 예 설명] 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 입출력 예 #3 11의 모..
[문제 설명] 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. [제한 조건] phone_number는 길이 4 이상, 20이하인 문자열입니다. [입출력 예] phone_number return "01033334444" "*******4444" "027778888" "*****8888" [풀이] 핸드폰 번호 맨 뒤 네자리를 제외한 나머지 숫자들을 *로 바꿔서 반환하는 문제 나는 간단하게 핸드폰 번호 길이만큼 반복문을 돌면서 만약 뒤 네자리가 아니면 *을 answer에 넣고 맨 뒤 네..

[문제 설명] 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. [제안사항] n은 1 이상 100,000,000 이하인 자연수입니다. [입출력 예] n result 45 7 125 229 [입출력 예 #1] 답을 도출하는 과정은 다음과 같습니다. n(10진법) n(3진법) 앞뒤반전(3진법) 10진법 45 1200 0021 7 따라서 7을 return 해야 합니다. [입출력 예 #2] 답을 도출하는 과정은 다음과 같습니다. n(10진법) n(3진법) 앞뒤반전(3진법) 10진법 125 11122 22111 229 따라서 229를 return 해야 합니다. [풀이] 1) 3진법 변환 : inp..
[문제 설명] 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. [제안사항] array의 길이는 1 이상 100 이하입니..

[문제] 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. [제안 사항] 입력된 수, num은 1 이상 8000000 미만인 정수입니다. [입출력..
https://www.acmicpc.net/problem/10820 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 문제 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다. 입력 첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다. 출력 첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자..
https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 문제 세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오. 예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다. 입력 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어..