![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dCAGyN/btrfZpqeaiJ/HTap0YuNoX41AZrFIFuvK0/img.png)
문제의 조건 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..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/WXguf/btrfUOR06o5/S0DaRdkzfr6dt65HV5Ldd0/img.png)
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 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bcCpMf/btrfPWXNCkG/D9OCq2dbInLVRpycmU529K/img.png)
소수 구하기를 생각하는 거 자체는 어렵지 않았는데 모든 수의 합을 어떻게 찾는지 좀 고민했던 문제 문제의 조건 1. 정수 배열이 하나 주어짐 2. 배열에서 숫자 3개를 뽑아서 더한 값이 소수이면 카운트 1증가 3. 주어진 배열에서 2번의 소수 카운트가 최대 몇 개 나오는지 구하기 #include #include #include #include using namespace std; bool isPrimeNum(int num) { if (2 > num) return false; //sqrt는 제곱근을 구해주는 함수 //자세한 설명은 링크 글 참고 int a = static_cast(sqrt(num)); for (int i = 2; a >= i; i++) { if (0 == num % i) return fal..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Inl0v/btrfUQoFtgv/UPhmzMSYkkkkNgoAbAE3h0/img.png)
문제의 조건 1. 절대값이 들은 배열 absolutes와 +,- 부호 표시가 들은 배열 signs가 주어진다. 2. 두 배열의 길이는 같으며 signs[0]이 true면 absolutes[0]은 양수, signs[0]이 false면 absolutes[0]은 음수이다. 3. 이 때 실제 정수들의 합을 구하라. #include #include using namespace std; int solution(vector absolutes, vector signs) { int answer = 0; for (int i = 0; absolutes.size() > i; i++) { //false일 경우에만 음수로 바꿔주고 양수는 그대로 더해주면 되기 때문에 false 조건만 확인하면 됨 if (false == signs..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cs7YYg/btrfU3uvPsG/SCjvrxd2jwZRHDUbI6OXd1/img.png)
처음에 쬐끔 돌아가는 바람에 시간을 썼던 문제지만 다행히 생각을 바꿔 쉽게 풀었습니다. 문제의 조건 1. 0 ~ 9 까지의 숫자가 담긴 배열이 주어진다. 2. 그 중에서 없는 숫자만 더한 합을 구하라. 만약 [0,1,2,3,5,6,7,8] 배열이 주어지면 4와 9가 없다. 4 + 9를 리턴하면 됨 3. 중복된 숫자가 들어있지는 않다. #include #include #include using namespace std; int solution(vector numbers) { int answer = 0; for (int i = 0; 10 > i; i++) { //0~9까지 가면서 numbers 배열에서 찾지 못한 숫자면 합계에 더하기 auto it = find(numbers.begin(), numbers.e..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ciKTZl/btrfRoq8qfz/nPJwTq6iCqNC6Edc3Cqzn1/img.png)
2차원 배열에서 인형을 뽑아서 다른 바구니로 옮기는데 같은 인형이 2개 연속으로 쌓이면 터진다. 크레인의 모든 이동이 끝나고 난 후 바구니에서 인형이 몇 개 터졌는지 구하는 문제 문제의 조건 1. 5x5 ~ 30x30 이하의 2차원 배열과 크레인이 몇 번 줄에서 인형을 뽑았는지 그 순서를 담은 1차원 배열이 주어짐 2. 주어진 2차원 배열에는 인형의 위치를 표시한 숫자가 들어 있는데 0이면 해당 위치에는 인형이 없다는 뜻이고 1 이상 숫자는 인형이 들어있다는 뜻임 3. 같은 숫자끼리 같은 인형이라고 간주함 4. 크레인의 움직임을 담은 배열 원소의 크기는 1부터 시작함 -> 2차원 배열의 인덱스에 적용해서 비교하려면 (크레인의 움직임을 담은 배열) 원소에서 1을 빼줘야 함 쉬운 문제였는데 스택에 값이 없을..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b6JRC3/btrfxOdxE2T/8BUSrZkwjxMk4H3wIi9LiK/img.png)
숫자 배열이 주어지는데 숫자 키패드에서 어느쪽 엄지손가락을 써서 배열의 숫자들을 눌렀을까 알아맞히는 문제 문제의 조건 1. 엄지손가락만 사용한다. 2. 왼쪽 엄지손가락은 *에서 시작하고 오른쪽 엄지손가락은 #에서 시작한다. 3. 왼쪽 엄지손가락은 1, 4, 7을 누를 수 있고 오른쪽 엄지손가락은 3, 6, 9를 누를 수 있다. 4. 가운데 라인에 있는 숫자들은 현재 손가락이 있는 위치에서 더 가까운 위치에 있는 손가락이 누른다. -> 매번 숫자를 누를 때마다 손가락 위치를 저장해야 함 5. 거리 계산은 직선상으로만 하며 대각선으로는 하지 않음 -> 대각선 위치에 있으면 거리를 2라고 봄 6. 만약 양쪽 손가락 위치에서 눌러야 할 숫자까지 거리가 같으면 오른손잡이면 오른손으로 누르고 왼손잡이면 왼손으로 누..
- Total
- Today
- Yesterday
- 프로그래밍
- 그리디
- greedy
- 다이나믹프로그래밍
- 깊이우선탐색
- c언어
- BFS
- 하드웨어
- 문제풀이
- 아이패드
- 알고리즘
- 컴퓨터사이언스
- hackerrank
- 프로그래머스
- 영어공부
- 컴퓨터
- 컴퓨터공부
- 기초
- 캐나다
- dp
- DFS
- 캐나다생활
- 너비우선탐색
- 해커랭크
- 백준
- 코딩공부
- 스위프트플레이그라운드
- C언어기초
- 애플
- c++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |