![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/beIBMY/btrhvOn3Tzo/8cNNSJJjKctrLXGGSvcL2k/img.png)
주어지는 배열의 원소들을 합하거나 더해서 타겟 넘버로 만들 수 있는 모든 경우의 수를 찾는 문제 문제의 조건 1. 정수가 담긴 배열 numbers, 타겟 넘버 target이 주어짐 2. 배열의 모든 숫자를 이용해서 더하고 빼서 target과 같아지는 경우가 몇 개인지 구해서 리턴 #include #include using namespace std; int answer = 0; void dfs(vector& numbers, int target, int index = 0, int sum = 0) { //마지막 인덱스라면 if (index == numbers.size()-1) { //마지막 바로 앞 원소까지 더한 값에 마지막 원소를 더했을 때 target과 같아진다면 경우의 수 증가 if (sum + numb..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/btBOTw/btrhgkicDkO/yGQsEZCvCK0cvsfjneIRkk/img.png)
안 매운 음식들을 섞어서 매운 음식으로 만들건데 총 몇 번 섞어야 하는지 구하는 문제 문제의 조건 1. 음식들의 맵기를 담은 배열 scoville, 기준이 되는 스코빌 지수 K가 주어짐 2. scoville 원소들이 K 이상 되어야 함 3. 새로운 음식을 만드는 공식은 이렇다. 가장 덜 매운 두가지를 뽑아서 위의 공식으로 섞는다. 4. 모든 음식을 K 이상으로 만들 수 없으면 -1 리턴 (이 예외처리를 안 해서 또 시간 날림 ㅠ.ㅠ 문제를 똑바로 읽읍시다...) 5. 가장 덜 매운 음식의 지수가 최소 K 이상 되려면 몇 번 섞어야 하는지 구해서 리턴하기 원소 하나하나 복사해서 set으로 만든다고 뻘짓했는데 우선순위 큐로 쉽게 해결할 수 있었던 문제... #include #include #include u..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bXB2x9/btrhsgd4hdn/AWwYIdZa5qUrEvODhBIIWk/img.png)
기능이 배포되는 날에 한 번에 몇 개의 기능이 함께 배포되는지 구하는 문제 문제의 조건 1. 작업의 개수를 담은 배열 progresses, progresses 원소 각각의 작업 속도를 담은 배열 speeds가 주어짐 2. 각 작업은 뒤에 있는 것이 먼저 개발될 수도 있다. 하지만 먼저 개발중인 작업이 완료될 때까지 기다렸다가 함께 배포된다. 3. 한 번에 몇 개씩 기능이 배포되는지 배열에 담아서 리턴하기 4. 이 문제의 주의사항은 progresses [99, 99, 99] speeds [1, 1, 1] 일 때 답이 3이 나오면 된다. (처음에 저거에 대한 예외처리 안 해줘서 1,2,4,5 통과가 안 됐었음 ㅠ.ㅠ) #include #include #include using namespace std; ve..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/OFRKs/btrhh7I2A0U/XNIvOcVq8LiKnKQcpY43d1/img.png)
A로 초기화 되어 있는 알파벳 배열을 조이스틱을 움직여서 최종 결과로 바꿔야 하는데 이 때 가장 최소로 움직이는 횟수를 구하는 문제 문제의 조건 1. 영어 대문자로만 이루어진 string 배열 name이 주어진다. 2. 우리가 바꿔야 하는 배열은 전부 'A'로 초기화 되어 있는데 조이스틱을 상하좌우로 움직여서 name과 똑같이 바꿔야 한다. 3. 위 규칙에 따라 조이스틱을 움직여서 글자를 바꿔야 한다. 이 때 최소 이동 횟수를 구하기 문제의 함정이... 0번째 인덱스부터 순서대로 이동하는 것이 아니라 현재 커서 위치에서 'A'가 아니면서 가장 가까운 위치로 이동해야 합니다. 첨에 이걸 몰라서 4,7,8번이 계속 틀림 ㅠ.ㅠ 시간을 얼마나 버렸는지 결국 구글링 해서 풀었습니다... 아래는 참고한 답안 #i..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dEdxDS/btrhfyUomMn/6adB0OCHdwyUPeQXClJnKk/img.png)
2021.10.05 - [코딩 공부/C 언어] - [C언어 기초] 조건문 if [C언어 기초] 조건문 if 2021.04.16 - [코딩 공부/C 언어] - C 언어 기초 : 연산자 3 - 비트 연산자 C 언어 기초 : 연산자 3 - 비트 연산자 2021.04.14 - [코딩 공부/C 언어] - C 언어 기초 : 연산자 1 C 언어 기초 : 연산자 1 2021.02.07.. hgu-can.tistory.com 안녕하세요~! 오늘은 조건문 if에 이어 if ~ else문과 else if문에 대해 알아볼 거에요. 저번 포스트에서 설명했던 if문을 마스터하셨으면 이번 주제도 쉽습니다. 1. if ~ else if ~ else는 if에서 하나가 더 추가된 것입니다. 우리가 if문을 할 때엔 어떤 조건이 충족되었..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cmA1y3/btrhdW2Bwdx/oODqJH31WpuSAcKmixnM21/img.png)
주어진 그림이 몇 개의 영역으로 나눠져 있으며 제일 넓은 부분은 어디인지 구하는 문제 문제의 조건 1. 그림의 세로 m, 가로 n, m x n 2차원 배열 picture가 주어짐 2. 주어진 그림에서 상하좌우 방향으로 연속한 숫자들만 같은 영역으로 침 -> BFS로 연속한 같은 숫자끼리의 넓이를 구하자 3. 영역이 몇 개인지, 그 중 가장 넓은 영역 크기는 몇인지 구하기 4. 전역변수는 solution 함수 안에서 초기화 해 주어야 함 #include #include #include using namespace std; int dir[4][2]; vector Pixels(pair curPos, int m, int n) { vector pixels; for (int i = 0; 4 > i; i++) { p..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/deBGj1/btrhgkgtQIO/Nqp5l5AwBTXfwIvblNtHnK/img.png)
10진법을 124 나라의 진법 방식으로 바꾸면 무슨 숫자가 되는지 구하는 문제 친절하게 힌트 알려주신 분 보고 풀었습니다 ㅠ.ㅠ 난 언제쯤 힌트 없이... 문제의 조건 1. 124 나라는 1, 2, 4 만 사용한다. (0도 안 씀) 2. 주어지는 10진법 정수 n을 124 나라 스타일로 바꾸면 뭔지 리턴하기 #include #include using namespace std; string Tri(int n) { if (0 >= n) return ""; string tri = ""; int remainder; if (0 == n % 3) { //3으로 나누어 떨어질 때 나머지가 0이지만 //124 나라에선 4가 되어야 함 //3으로 나누어 떨어지면 몫을 1낮추고 나머지는 4로 저장 remainder = 4..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ckE35m/btrg4JneKXq/wyJQcGb9rF9ChsRXDV0vxK/img.png)
프로도의 비상금 위치를 알기 위해서... 비밀지도의 암호를 푸는 문제 문제의 조건 1. 정사각형 지도의 한 변의 길이 n, 지도 1의 암호 배열 arr1, 지도 2의 암호 배열 arr2가 주어짐 2. 각 지도 배열에는 n개의 정수가 들어있는데 암호화된 숫자임 저걸 2진수로 바꿔야 진짜 지도 그림을 알 수 있음 arr1[i]의 원소 하나를 2진수로 바꾸면 00101과 같은 숫자를 얻을 수 있는데 0은 빈 공간(" ")이고 1은 벽("#")이다. 3. 지도 2개를 합쳐야 진짜 보물지도를 얻을 수 있는데 두개를 합쳤을 때 하나라도 1이면 벽("#")이고 둘 다 0이면 빈 공간(" ")이다. 4. 비밀지도를 해독해서 " # #" 등과 같은 문자열 형식으로 배열에 저장한 후 리턴 #include #include ..
- Total
- Today
- Yesterday
- dp
- greedy
- hackerrank
- 컴퓨터
- 스위프트플레이그라운드
- c언어
- 영어공부
- 프로그래밍
- 해커랭크
- 코딩공부
- 그리디
- 하드웨어
- BFS
- 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 |