문제의 조건 1. 정수를 담은 배열 numbers가 주어짐 2. 숫자 두 개를 뽑아서 더했을 때 나올 수 있는 수들을 담은 배열 리턴하기 #include #include #include using namespace std; vector solution(vector numbers) { vector answer; for (int i = 0; numbers.size() - 1 > i; i++) { for (int j = i + 1; numbers.size() > j; j++) { int sum = numbers[i] + numbers[j]; auto it = find(answer.begin(), answer.end(), sum); if (answer.end() == it) answer.emplace_back(..
s사에서 정해진 예산 안에서 몇 개 부서의 물품을 사줄 수 있는지 구하는 문제 문제 읽으면서는 정렬하고 시작해야겠다 해놓고 코드 쓸 때 까먹어서 왜 안 될까... 헤멨던 문제 ㅎ; 문제의 조건 1. 부서별로 필요한 예산을 담은 배열 d와 총 예산 budget이 주어짐 2. 남은 돈이 부서에서 필요로하는 돈보다 모자라면 아예 주지 않는다. #include #include #include #include #include using namespace std; int solution(vector d, int budget) { sort(d.begin(), d.end()); //오름차순 정렬 후 시작 int sum = 0; int answer = 0; for (auto elem: d) { //미리 더해본 값이 예산..
다양한 크기를 가진 명함 카드들을 모두 수납할 수 있는 지갑을 만들기 위한 최소 크기를 구하는 문제 문제의 조건 1. 명함의 가로와 세로 길이를 담은 2차원 배열 sizes가 주어짐 2. 명함마다 가로가 더 길 수도 있고 세로가 더 길 수도 있는데 세로가 더 긴 명함은 눕히면 가로가 더 긴 명함과 함께 수납할 수 있다. -> 그래서 세로가 더 긴 명함은 옆으로 눕혀봐야 함 3. 이 때 가장 작은 지갑 사이즈는 몇이면 되는지 구하기 #include #include #include #include using namespace std; int solution(vector sizes) { vector vecWidths, vecHeights; for (auto nameCard: sizes) { //세로가 더 길면..
10진수->n진수 바꾸기 / n진수->10진수 바꾸기를 너무 오랜만에 해봐서 다시 공부하느라 오래 걸렸던 문제 ㅠ.ㅠ 문제의 조건 1. 10진수 n이 주어짐 2. n을 3진수로 바꾼 다음에 그 3진수를 뒤집음 3. 뒤집은 3진수를 다시 10진수로 바꾼 수를 리턴하기 #include #include #include using namespace std; //오랜만에 재귀함수를 떠올리며... 재귀함수로 구현 string GetTrit(int n) { string trit = ""; //n의 몫이 0이 될 때까지 나눠가면서 생기는 나머지들을 저장해 둠 int remainder = n % 3; if (0 >= n) return ""; else trit = GetTrit(n / 3); //string으로 바꾼 나머..
문제의 조건 1. 매개변수 left, right가 주어짐 1 quotient) break; } //수와 약수의 갯수 저장 후 카운트 변수 초기화 mapAliquot.insert(pair(i, iCount)); iCount = 0; } int answer = 0; for (auto count: mapAliquot) { if (0 == count.second % 2) answer += count.first; else answer -= count.first; } return answer; }
슈퍼 게임 개발자 오렐리의 위기를 도와줘야 하는 문제 나도 되고 싶다... 슈퍼 게임 개발자... 문제의 조건 1. 전체 스테이지의 개수 N, 현재 플레이어들이 멈춰 있는 스테이지를 나타낸 배열 stages가 주어진다. 2. 실패율이 높은 스테이지부터 내림차순으로 정렬한 배열을 리턴하는데 실패율이 같으면 낮은 스테이지가 앞에 옴 3. 스테이지에 도달한 유저가 없으면 해당 스테이지의 실패율은 0 이다. 4. 실패율은 스테이지에 도달했으나 클리어하지 못하고 머물러 있는 플레이어의 수 / 스테이지를 클리어 한 플레이어의 수 로 구할 수 있다. [1, 4, 4] 배열에서 1 스테이지의 실패율은 1/3 2 스테이지의 실패율은 0/2 3 스테이지의 실패율은 0/2 4 스테이지의 실패율은 2/2 이 된다. ↑ 이것들..
문제의 조건 1. 폰켓몬이 종류별로 담긴 배열 nums가 주어진다. 2. 나는 nums의 길이의 절반만큼의 폰켓몬만 데려갈 수 있다. 3. nums 배열에는 [1,1,4,3,5,5] 이런 식으로 숫자가 담겨 있는데 같은 숫자끼리는 같은 종류의 폰켓몬이라는 뜻이다. 4. 여기서 내가 데려갈 수 있는 가장 많은 종류의 폰켓몬 수 구하기 배열에 담긴 숫자들을 종류별로 센 후 (배열 길이/2)에 따라 리턴하면 될 거 같아서 아래와 같이 짜 보았습니다. #include #include using namespace std; int solution(vector nums) { int AbleToChoose = nums.size() * 0.5f; sort(nums.begin(), nums.end()); nums.resi..
5번, 12번 테케 찾느라 시간 쓴 문제 ㅠ.ㅠ 문제의 조건 1. 총 학생 수 n, 체육복을 도둑맞은 학생들의 번호를 담은 배열 lost, 여분 체육복이 있는 학생들의 번호를 담은 배열 reserve가 주어짐 2. 여분 체육복이 있는 학생은 바로 앞뒤 번호 학생들 중 한 명에게만 빌려줄 수 있다. 3. 만약 여분 체육복이 있는 학생이 도둑맞았으면 빌려줄 수 없다. 4. 이 때 최대 몇 명이 체육복을 입을 수 있는지 구하기 #include #include #include using namespace std; int solution(int n, vector lost, vector reserve) { sort(lost.begin(), lost.end()); vector copy_lost = lost; for ..
- Total
- Today
- Yesterday
- 너비우선탐색
- 알고리즘
- 영어공부
- 기초
- c++
- 코딩공부
- 컴퓨터사이언스
- 컴퓨터공부
- 컴퓨터
- 문제풀이
- 스위프트플레이그라운드
- 캐나다생활
- greedy
- C언어기초
- 아이패드
- 해커랭크
- 그리디
- 하드웨어
- 애플
- 백준
- 깊이우선탐색
- c언어
- BFS
- 프로그래밍
- dp
- DFS
- hackerrank
- 프로그래머스
- 캐나다
- 다이나믹프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |