코틀린-안드로이드 70

40일차)알고리즘 문제(2개 이하로 다른 비트), 팀 프로젝트

>알고리즘 문제1. 문제문제 설명양의 정수 x에 대한 함수 f(x)를 다음과 같이 정의합니다.x보다 크고 x와 비트가 1~2개 다른 수들 중에서 제일 작은 수예를 들어,f(2) = 3 입니다. 다음 표와 같이 2보다 큰 수들 중에서 비트가 다른 지점이 2개 이하이면서 제일 작은 수가 3이기 때문입니다.수비트다른 비트의 개수2000...0010 3000...00111f(7) = 11 입니다. 다음 표와 같이 7보다 큰 수들 중에서 비트가 다른 지점이 2개 이하이면서 제일 작은 수가 11이기 때문입니다.수비트다른 비트의 개수7000...0111 8000...100049000...1001310000...1010311000...10112정수들이 담긴 배열 numbers가 매개변수로 주어집니다. numbers의 ..

39일차)알고리즘 문제(숫자 변환하기), 챌린지반 2회차 강의(OOP설계), 팀프로젝트(입문주차)

>알고리즘 문제1. 문제문제 설명자연수 x를 y로 변환하려고 합니다. 사용할 수 있는 연산은 다음과 같습니다.x에 n을 더합니다x에 2를 곱합니다.x에 3을 곱합니다.자연수 x, y, n이 매개변수로 주어질 때, x를 y로 변환하기 위해 필요한 최소 연산 횟수를 return하도록 solution 함수를 완성해주세요. 이때 x를 y로 만들 수 없다면 -1을 return 해주세요.제한사항1 ≤ x ≤ y ≤ 1,000,0001 ≤ n 2. 솔루션class Solution { fun solution(x: Int, y: Int, n: Int): Int { val dp=IntArray(y+1){Int.MAX_VALUE} //dp[현재값]=최소 연산 횟수 dp[x]=0 ..

38일차)알고리즘 문제(롤케이크 자르기, 트리 트리오 중간값, 등대, 미로 탈출, 가사 검색), 코드카타 리뷰(대각선 공식,BigDecimal,setScale), 입문 과제 해설강의, git&github강의

>알고리즘 문제1. 롤케이크 자르기1)문제문제 설명철수는 롤케이크를 두 조각으로 잘라서 동생과 한 조각씩 나눠 먹으려고 합니다. 이 롤케이크에는 여러가지 토핑들이 일렬로 올려져 있습니다. 철수와 동생은 롤케이크를 공평하게 나눠먹으려 하는데, 그들은 롤케이크의 크기보다 롤케이크 위에 올려진 토핑들의 종류에 더 관심이 많습니다. 그래서 잘린 조각들의 크기와 올려진 토핑의 개수에 상관없이 각 조각에 동일한 가짓수의 토핑이 올라가면 공평하게 롤케이크가 나누어진 것으로 생각합니다.예를 들어, 롤케이크에 4가지 종류의 토핑이 올려져 있다고 합시다. 토핑들을 1, 2, 3, 4와 같이 번호로 표시했을 때, 케이크 위에 토핑들이 [1, 2, 1, 3, 1, 4, 1, 2] 순서로 올려져 있습니다. 만약 세 번째 토핑(..

37일차)알고리즘 문제(뒤에 있는 큰수)

>알고리즘 문제1.문제문제 설명정수로 이루어진 배열 numbers가 있습니다. 배열 의 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이 있는 수를 뒷 큰수라고 합니다.정수 배열 numbers가 매개변수로 주어질 때, 모든 원소에 대한 뒷 큰수들을 차례로 담은 배열을 return 하도록 solution 함수를 완성해주세요. 단, 뒷 큰수가 존재하지 않는 원소는 -1을 담습니다.제한사항4 ≤ numbers의 길이 ≤ 1,000,0001 ≤ numbers[i] ≤ 1,000,0002)솔루션class Solution { fun solution(numbers: IntArray): IntArray { var answer=IntArray(numbers.size){-1}..

36일차)알고리즘 문제(모음사전, 안티세포**중요!!)

>알고리즘 문제 1. 모음사전1)문제문제 설명사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다.단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요.제한사항word의 길이는 1 이상 5 이하입니다.word는 알파벳 대문자 'A', 'E', 'I', 'O', 'U'로만 이루어져 있습니다.2)솔루션class Solution { fun solution(word: String): Int { var answer = 1 ..

35일차)알고리즘 문제(주차요금 계산)

>알고리즘 문제1.문제문제 설명문제 설명주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다.요금표기본 시간(분)기본 요금(원)단위 시간(분)단위 요금(원)180500010600 입/출차 기록시각(시:분)차량 번호내역05:345961입차06:000000입차06:340000출차07:595961출차07:590148입차18:590000입차19:090148출차22:595961입차23:005961출차 자동차별 주차 요금차량 번호누적 주차 시간(분)주차 요금(원)000034 + 300 = 3345000 + ⌈(334 - 180) / 10⌉ x 600 = 1460001486705000 +⌈(670 - 180) / 10⌉x ..

34일차)알고리즘 문제(k진수에서 소수 개수 구하기, 짝수행 세기, 쌍둥이 빌딩 숲, 지형 이동), 코드카타 리뷰(숫자 k진수 변환, 정규표현식)

>알고리즘 문제 1. k진수에서 소수 개수 구하기1)문제문제 설명양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다.0P0처럼 소수 양쪽에 0이 있는 경우P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우P처럼 소수 양쪽에 아무것도 없는 경우단, P는 각 자릿수에 0을 포함하지 않는 소수입니다.예를 들어, 101은 P가 될 수 없습니다.예를 들어, 437674을 3진수로 바꾸면 211020101011입니다. 여기서 찾을 수 있는 조건에 맞는 소수는 왼쪽부터 순서대로 211, 2, 11이 있으며, 총 3개입니다. (211, 2, 1..

33일차)알고리즘 문제(타겟넘버, 짝수 행 세기), 개인프로젝트 디자인 구상

>알고리즘 문제 1. 타겟넘버1)문제n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요.제한사항주어지는 숫자의 개수는 2개 이상 20개 이하입니다.각 숫자는 1 이상 50 이하인 자연수입니다.타겟 넘버는 1 이상..

32일차)알고리즘 문제(피로도), 챌린지반 강의 1회차, 추가 과제

>알고리즘 문제1. 피로도1)문제문제 설명XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다.이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러개 있는데..

31일차)알고리즘 문제(프로세스, 등산코스 정하기, 징검다리), 개인프로젝트 구상

>>알고리즘 문제 1. 프로세스 1)문제문제 설명운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다.1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다.2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다.3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다.예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, ..