본문 바로가기

문제 풀이/프로그래머스 (Programmers)51

[C++] 프로그래머스 : 위클리 챌린지 (8주차) https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 8주차 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 문제 풀이 가로 중에서 제일 긴 사이즈와 세로 중에서 가장 긴 사이즈를 찾아서 리턴하면 된다! 특별하게 여유 폭 이런 게 없는 문제이므로 찾기만 하면 된다. 느낀 점 위클리 테스트 치고는 어렵지 않았다! 코드 #include #include #include using namespace std; int solution(vector sizes) { int max_x = 0,.. 2021. 10. 3.
[C++] 프로그래머스 : 기능개발 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제 풀이 반복문과 조건문으로 스택/큐 없이 직관적으로 풀었다. 프로세스의 값이 100 이상이라면 다음 프로세스의 크기를 확인해서 cnt를 +1 해준다. 아니라면 모든 프로세스의 속도만큼 더 해준다. 이때, 프로세스의 값이 이미 100 이상이라면 continue로 건너뛴다. cnt 값이 1 이상일 때 answer에 값을 push 해주고 idx에 더해준다... 2021. 10. 2.
[C++] 프로그래머스 : 124 나라의 숫자 https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 문제 풀이 3개의 숫자만 쓸 수 있다는 점이 3진수를 사용하라는 힌트이다. 여기서 주의해야 할 점은 3으로 나누어 떨어지는 경우이다. 10진수 3진수 124나라 1 1 1 2 2 2 3 10 4 4 11 11 - - - 12 110 44 3으로 나누어 떨어지는 경우에는 몫이 하나 남기 때문에 -1을 해줘야 한다. 그 외에는 수 체계 바꾸기와 동일하게 하면 된다! 느낀 점 보자마자 3진수를 생각해냈지만 수를 바꾸는데서 많이 헤맨 거 같다.. 코드 #include using namespace std; string solution(int .. 2021. 10. 2.
[C++] 프로그래머스 : 멀쩡한 사각형 https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 문제 풀이 (x, y) 좌표로 생각해서 접근할 수 있다. 느낀점 이전에 한번 풀었던 문제이다. 코드 #include using namespace std; long long solution(int w, int h) { long long answer = 0; for (int i = 1; i 2021. 10. 1.
[C++] 프로그래머스 : 단체사진 찍기 https://programmers.co.kr/learn/courses/30/lessons/1835 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr 문제 풀이 백트래킹을 통해서 구현하였다. 거리는 따지는 것이 중요하다. 인덱스를 통해서 둘 사이의 거리를 따지기 때문에 주어진 조건의 거리에서 +1 된 값으로 비교해야 한다. 느낀 점 C++에서 제공하는 "next_permutation" 함수로 해결해도 되는 문제이지만 백트래킹으로 구현하고 싶어서 구현했다. 사실 그렇게 크게 어렵지 않은 문제인데 백트래킹이 오.. 2021. 9. 30.
[C++] 프로그래머스 : 카카오프렌즈 컬러링북 https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 문제 풀이 기본적인 BFS 문제이다. BFS에 최대 범위와 map 그리고 시작 좌표를 입력받고 target 값과 같은 값을 찾는다. target 값과 같다면 해당 영역의 사이즈를 늘려주고 return 해주면 된다. BFS에는 방문 여부가 필수이므로 memset을 통해서 vistied의 값을 초기화해준다. 느낀 점 백준에서 풀었던 아기 상어 문제가 많이 도움이 되었다.. 2021. 9. 22.