베스트앨범에 수록할 곡을 찾는 문제 이것 또한 최대 재생 장르를 찾는데까진 생각해냈지만 나머지 수록곡을 찾는 부분 구현을 어찌 해야 할 지 감이 안 와서 구글링이 필요했음... 문제의 조건 1. 노래의 장르를 담은 문자열 배열 genres, genres 배열의 각 원소들의 재생 횟수가 담긴 배열 plays가 주어짐 2. genres의 노래는 고유 번호로 구분되는데 고유번호는 genres 배열의 인덱스 번호임 3. 노래 수록 기준은 다음과 같다. 4. 위 기준대로 노래를 담았을 때 수록되는 인덱스 번호 순서를 리턴하기 5. 필요한 것: 장르별 총 재생횟수 장르별 재생횟수와 인덱스 번호 장르별 총 재생횟수를 구해서 가장 많이 재생된 장르를 찾는다. 찾은 장르로 가장 많이 재생된 고유번호 2개를 찾는다. an..
일정한 길이로 문자열을 압축하는데 가장 짧게 압축할 수 있는 길이를 찾는 문제 인데 처음엔 어떻게 풀어야 할지 감이 안 와서 구글링해서 풀었습니다 ㅠ.ㅠ 문제의 조건 1. 압축할 문자열 s가 주어짐 2. 같은 알파벳이 연속해 있으면 압축할 수 있는데 문자열의 처음부터 끝까지 같은 길이로만 압축해야 한다. aaabb 일 때 앞에는 a가 3개니까 3a로 압축하고 b는 두개니까 2b로 압축해서 3a2b로 압축하는 건 안 됨 2aa2b = i; i++) //s 절반까지만 탐색 { string convert, tmp; int count = 1; tmp = s.substr(0, i); //i가 증가함에 따라 비교할 문자열의 길이도 점점 늘어날 것임 for (int j = i; s.length() > j; j += ..
죄금 시간이 걸렸지만... 다른 분들도 일일이 회전시킨거 같아서 조금 맘이 놓이는 문제...ㅎ 문제의 조건 1. rows x columns 행렬이 있고 회전시킬 값을 저장한 2차원 배열 queries가 주어짐 2. rows와 columns만 주어지기 때문에 주어진 가로 세로값으로 회전시킬 보드판을 직접 만들어야 함 3. queries의 값들로 만들어지는 사각형 테두리에 있는 원소들만 시계 방향으로 회전시키는데... 그 중에서 최소값을 배열에 담아서 리턴하기 4. 문제에서 x, y 값을 상당히 헷갈리게 적어놔서 디버깅하면서 x, y 인덱스값을 잘 구하는지 확인해야 함... 5. 회전 순서 회전을 시작할 인덱스를 먼저 구한 뒤 현재값을 저장할 변수에 저장한다. 시작 인덱스의 원소를 최소값으로 지정한다. ➡️..
풀이 과정을 떠올리는 건 쉬웠지만 시간이 너무 오래 걸리는 코드를 짜는 바람에 효율성 테스트 통과를 하지 못해서... 힌트 참고해서 다른 방법으로 다시 짜서 통과한 문제 ㅠ.ㅠ 문제의 조건 1. string s가 주어짐 2. 앞뒤로 두개가 같은 알파벳이면 제거할 수 있다. 같은 알파벳 두개를 제거하고 나면 남은 것들끼리 이어붙여서 또 짝지어 두개가 같으면 제거하고 남은것들끼리 이어붙이고.... 를 반복해서 모든 알파벳이 제거되면 1 제거되지 않으면 0 리턴 #include #include #include using namespace std; int solution(string s) { int answer = -1; vector tmp; for (int i = 0; s.length() > i; i++) {..
주어지는 배열의 원소들을 합하거나 더해서 타겟 넘버로 만들 수 있는 모든 경우의 수를 찾는 문제 문제의 조건 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..
안 매운 음식들을 섞어서 매운 음식으로 만들건데 총 몇 번 섞어야 하는지 구하는 문제 문제의 조건 1. 음식들의 맵기를 담은 배열 scoville, 기준이 되는 스코빌 지수 K가 주어짐 2. scoville 원소들이 K 이상 되어야 함 3. 새로운 음식을 만드는 공식은 이렇다. 가장 덜 매운 두가지를 뽑아서 위의 공식으로 섞는다. 4. 모든 음식을 K 이상으로 만들 수 없으면 -1 리턴 (이 예외처리를 안 해서 또 시간 날림 ㅠ.ㅠ 문제를 똑바로 읽읍시다...) 5. 가장 덜 매운 음식의 지수가 최소 K 이상 되려면 몇 번 섞어야 하는지 구해서 리턴하기 원소 하나하나 복사해서 set으로 만든다고 뻘짓했는데 우선순위 큐로 쉽게 해결할 수 있었던 문제... #include #include #include u..
기능이 배포되는 날에 한 번에 몇 개의 기능이 함께 배포되는지 구하는 문제 문제의 조건 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..
A로 초기화 되어 있는 알파벳 배열을 조이스틱을 움직여서 최종 결과로 바꿔야 하는데 이 때 가장 최소로 움직이는 횟수를 구하는 문제 문제의 조건 1. 영어 대문자로만 이루어진 string 배열 name이 주어진다. 2. 우리가 바꿔야 하는 배열은 전부 'A'로 초기화 되어 있는데 조이스틱을 상하좌우로 움직여서 name과 똑같이 바꿔야 한다. 3. 위 규칙에 따라 조이스틱을 움직여서 글자를 바꿔야 한다. 이 때 최소 이동 횟수를 구하기 문제의 함정이... 0번째 인덱스부터 순서대로 이동하는 것이 아니라 현재 커서 위치에서 'A'가 아니면서 가장 가까운 위치로 이동해야 합니다. 첨에 이걸 몰라서 4,7,8번이 계속 틀림 ㅠ.ㅠ 시간을 얼마나 버렸는지 결국 구글링 해서 풀었습니다... 아래는 참고한 답안 #i..
- Total
- Today
- Yesterday
- 캐나다
- 해커랭크
- dp
- 하드웨어
- 컴퓨터사이언스
- 컴퓨터공부
- 영어공부
- 문제풀이
- 알고리즘
- 아이패드
- 다이나믹프로그래밍
- 프로그래머스
- 코딩공부
- 그리디
- 캐나다생활
- C언어기초
- 깊이우선탐색
- c++
- 기초
- hackerrank
- greedy
- 너비우선탐색
- 컴퓨터
- 백준
- BFS
- DFS
- 애플
- 스위프트플레이그라운드
- 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 | 29 | 30 |