코딩테스트/프로그래머스
-
정수 삼각형 (c++)코딩테스트/프로그래머스 2024. 2. 28. 23:41
1. 문제 코딩테스트 연습 - 정수 삼각형 | Programmers School 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 누적합을 푸는 방식처럼 생각. 전부 더한 값을 저장하고, 그 값을 사용해서 triangle[i][j] 값을 구함 1. triangle[0][0] 부터 삼각형의 높이만큼 더한 값을 차례대로 저장 가장자리의 [i][0]부분과 [i][i]부분은 그냥 더함 내부 삼각형은 [i - 1][j - 1]이랑 더한 값과 [i - 1][j]랑 더한 값을 비교해서 더 큰 값을 저장 2. 삼각형 밑부분을 확인해서 가장 큰 값을 반환 3. 생..
-
쿼드압축 후 개수 세기 (c++)코딩테스트/프로그래머스 2024. 2. 28. 22:41
1. 문제 코딩테스트 연습 - 쿼드압축 후 개수 세기 | Programmers School 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 문제에서 2차원 정수 배열을 쿼드 트리와 같은 방식으로 압축하기를 주제로 줬다. 전체가 동일한지 확인하고, 맞으면 압축 아니면 더 작은 부분끼리 확인하고 하는 방식이라서 재귀함수를 사용해야할 것 같다고 생각했다. 조건을 주고 더 이상 비교할 수 없을 때까지 재귀함수를 돌렸는데, 찾아보니까 이렇게 푸는 방법이 바로 'dfs'였다. 그냥 풀었는데 dfs로 풀고있었다. [알고리즘] 깊이 우선 탐색(DFS)이란 - ..
-
덧칠하기 (c++)코딩테스트/프로그래머스 2024. 2. 21. 16:19
1. 문제 코딩테스트 연습 - 덧칠하기 | Programmers School 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 1. 구역을 표시할 크기 n인 vector v 생성 - 다시 칠해야 하는 부분 = 0, 나머지 = 1 2. vector 돌면서 다시 칠해야 하는 부분 확인 0이면 `i += m - 1` answer++ 3. 생각 원래는 칠하는 부분 전부 v에 1을 표시하고 넘어가려 했는데, 처음부터 다시 확인할 게 아니면 그냥 index만 넘겨도 알아서 처리가 되는 걸 깨달음 v[i]에 접근하는 게 시간을 많이 소요하지는 않지만, 불필요한..
-
최빈값 구하기 (c++)코딩테스트/프로그래머스 2024. 2. 8. 22:44
1. 문제 코딩테스트 연습 - 최빈값 구하기 | Programmers School 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 1. 각 원소의 개수 저장하는 v, 각 원소 개수의 수를 저장하는 cnt vector 초기화 array v cnt [1, 2, 3, 3, 3, 4] [0, 1, 1, 3, 1, 0, ..., 0] [0, 3, 0, 1, 0, ..., 0] 2. maxi = v의 최댓값 maxi가 2 이상 ≫ return -1 maxi가 1 ≫ return answer 3. 생각 v, cnt, maxi의 값이 계속 헷갈려서 많이 헤맸다..
-
문자열 나누기 (c++)코딩테스트/프로그래머스 2024. 1. 31. 00:17
1. 문제 코딩테스트 연습 - 문자열 나누기 | Programmers School 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 1. for문으로 s.size() 만큼 돌리기 2. 첫 글자 char c에 저장하고, 같으면 cnt_s++, 다르면 cnt_d++ 3. cnt_s == cnt_d || i = s.size() - 1 answer++ cnt_s, cnt_d 0으로 초기화 c = s[i + 1] 3. 생각 s[i + 1]으로 하면 범위를 넘어서지 않을까? 위 3번 조건일 경우의 코드에서 s[i + 1]에 접근하는 코드가 있다. 만약에 i가..
-
최댓값 만들기 (2) (c++)코딩테스트/프로그래머스 2024. 1. 28. 00:14
1. 문제 코딩테스트 연습 - 최댓값 만들기 (2) | Programmers School 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 1. 정렬하기 2. 가장 작은 두 숫자 곱하기(음수), 가장 큰 두 숫자 곱하기(양수) 해서 더 큰 숫자를 max라고 해서 반환 shin0112/programmers_cpp: programmers' coding test solutions (github.com) 출처 : 프로그래머스 코딩 테스트 연습 - 최댓값 만들기 (2) https://school.programmers.co.kr/learn/courses/30..
-
시저 암호 (c++)코딩테스트/프로그래머스 2024. 1. 28. 00:08
1. 문제 코딩테스트 연습 - 시저 암호 | Programmers School 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 1. for문으로 s를 돌면서 n 더함 2. z → a, Z → A 가 되는 것을 고려해서 26로 나눈 나머지를 사용 공백은 예외 처리 shin0112/programmers_cpp: programmers' coding test solutions (github.com) 출처 : 프로그래머스 코딩 테스트 연습 - 시저 암호 https://school.programmers.co.kr/learn/courses/30/lessons..
-
카드 뭉치 (c++)코딩테스트/프로그래머스 2024. 1. 28. 00:01
1. 문제 코딩테스트 연습 - 카드 뭉치 | Programmers School 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 1. goal이 cards1과 다르고, cards2와 다르면 → No 2. goal이 cards2와 다르고, cards1과 다르면 → No 3. 각 vector의 범위를 넘지 않는 선에서 위와 같은 방식으로 반복 3. 생각 위와 같은 풀이로 작성했고, 이중 for문을 돌렸다. goal에서 찾는 card가 1에서 2로 넘어가고 검사할 때, 반복해야 했기 때문에 그런데 cards1와 같으면 1의 index를 증가하고, 아니면..