- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- til
- 연결리스트
- 배열
- C언어
- Firebase
- firebase google
- 자바
- oauth
- 자료구조
- C++
- sql
- android studio
- 구글 로그인
- 프로그래머스
- 프로그래밍 입문
- 백준
- 로그인
- python
- 안드로이드 스튜디오
- Java
- 정렬
- 공유대학
- 동적할당
- 안드로이드
- 알고리즘
- 코딩테스트
- 파이썬
- 비주얼 베이직
- 컴퓨터공학과
목록개인 공부/프로그래머스 (56)
코딩하는 해달이
문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를..
문제 설명 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변..
문제 설명 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한 조건 1 ≤ left ≤ right ≤ 1,000 문제 이해 제곱근이 있으면 약수의 개수는 홀수이고 반대로 제곱근이 없으면 약수의 개수는 짝수이다. 알고리즘 1. 정수 left, right를 입력받는다. 2. 반복자 i를 선언한다. 3. i를 left부터 right까지 반복한다. 4. 만약 i의 제곱근이 정수이면 answer에서 뺀다. 5. 만약 i의 제곱근이 짝수이면 answer에 더한다. 풀이코드 #include #include #include using ..
문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한 조건 n은 1 이상 100,000,000 이하인 자연수입니다. 문제 이해 문제 그대로 3진법으로 변환 후 앞뒤로 반전한 다음 10진법으로 변환해서 리턴해야한다. 알고리즘 1. 정수 n을 입력받는다. 2. n을 3진법으로 변환한다. 3. 3진법으로 변환한 n을 문자열로 변환한다. 4. 문자열을 뒤집는다. 5. 문자열을 다시 3진수로 변환한다. 6. 3진법으로 나타난 수를 10진법으로 변환한다. 풀이코드 #include #include #include #include using namespace std; int solution..
문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요. 제한 조건 d는 부서별로 신청한..
문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 조건 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다 문제 이해 더할 수 있는 모든 경우의 수를 더한 후 중복을 제거하고 정렬을 하면 된다. 알고리즘 1. 정수 배열 numbers를 입력받는다. 2. numbers를 오름차순으로 정렬한다. 3. numbers 안에 있는 수로 2개를 뽑아 더할 수 있는 모든 경우의 수를 정수 배열 answer에 추가한다. 4. answer을 오름차순으로 정렬한다. 5. answer의 중복..
문제 설명 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한 조건 3 ≤ n ≤ 1,000,000 문제 이해 가장 작은 자연수를 찾아야하므로 0부터 n까지 수를 키워가면서 나눠보면 된다. 알고리즘 1. 정수 n을 입력받는다. 2. 반복자 i를 선언한다. 3. 반복자 i가 1부터 n까지 증가한다. 4. 만약 n % i == 1을 만족시키는 값이 나오면 i를 리턴 풀이코드 #include #include using namespace std; int solution(int n) { for (int i = 1; i < n; i++) { if (n % i ==..
문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 문제 이해 1월 1일을 금요일로 두면 2일은 토요일, 3일은 일요일이기 때문에 금요일을 1로잡고 총 일 수에 7을 나누었을 때 나머지에 따라 요일을 구하면 된다. 알고리즘 1. 정수 a와 b를 입력받는다. 2. a와 b를 통해..