알고리즘 부셔버렷/ProblemSolving45 [프로그래머스] 더 맵게 (문제 설명, 해결 과정, 코드 전문, c++) 문제 설명 해결 과정 코드 전문 문제 설명 본 문제는 프로그래머스의 더 맵게 문제입니다. 해결 과정 최소힙을 사용하여 음식의 수가 1개보다 클때 동안 그리고 최소힙 가장 앞의 수가 k보다 클 때 동안 최소힙에서 가장 작은 두자리를 뽑아 섞은 음식의 스코빌 지수를 찾아 다시 최소힙에 집어넣습니다. 이 반복이 이뤄지는 동안 횟수를 저장합니다. 이러한 과정을 거쳐 반복문을 나오게 되면 사이즈가 1이며 그 값이 k보다 낮다면 -1을 리턴하고 그렇지 않은 경우 지금까지 반복이 이뤄진 횟수를 반환하면 됩니다. 코드 전문 #include #include #include using namespace std; int solution(vector scoville, int k) { int answer = 0; int a, .. 2022. 6. 3. [프로그래머스] 기능개발 (문제 설명, 해결 과정, 코드 전문, c++) 문제 설명 해결 과정 코드 전문 문제 설명 본 문제는 프로그래머스의 기능개발 문제이다. 해결 과정 주어진 작업 진도의 앞차례부터 100을 달성하면 임시적인 set에 담습니다. 뒤에 있는 작업들의 진행상태도 고려해 앞차례 작업보다 빠르게 끝난 작업들을 임시적인 set에 담고 뒤에 아직 진행 중인 작업을 만나면 임시적인 set의 사이즈를 저장합니다.그리고 진행 중인 작업도 달성되면 같은 행동을 반복합니다. 그렇게 저장한 배열을 반환합니다. 코드 전문 #include #include #include using namespace std; vector solution(vector progresses, vector speeds) { vector answer; vector p = move(progresses); ve.. 2022. 6. 3. [프로그래머스] 124 나라의 숫자 (문제 설명, 해결 과정, 코드 전문, c++) 문제 설명 해결 과정 코드 전문 문제 설명 본 문제는 프로그래머스의 124 나라의 숫자 문제입니다. 해결 과정 1 2 4 세 가지의 숫자만을 사용하기에 3진법으로 주어지는 숫자를 나누고 각 대응되는 숫자를 1, 2, 4로 치환하여 반환하면됩니다. 코드 전문 #include #include #include #include using namespace std; string solution(int n) { string answer = ""; n--; while (1) { if (n = 3) { answer += to_string(n%3); n = n/3; n--; } } reverse(answer.begin(), answer.en.. 2022. 6. 2. [프로그래머스] 멀쩡한 사각형 (문제 설명, 해결 과정, 코드 전문, c++) 문제 설명 해결 과정 코드 전문 문제 설명 본 문제는 프로그래머스의 멀쩡한 사각형 문제입니다. 해결 과정 이번 문제는 일정한 패턴이 가로 세로의 최대공약수만큼 반복됨을 알 수 있습니다. 그리고 해당 패턴의 직선에 닿는 사각형들의 갯수는 패턴 내 직선의 시작점과 끝점까지의 최단거리와 관련됨을 볼 수 있다. 아래의 그림을 보면 패턴이 가로 2 세로 3으로 반복된다. 시작점과 끝점의 최단거리를 구하기 위해서는 가로와 세로를 더한 값이 나오며, 이 최단거리까지의 방향성을 생각해서 첫 블록부터 접근하면 가로와 세로를 더한 값에 1을 뺀 셈이다. 다음 그림과 같이 간선이 노드의 수보다 하나 적은 것과 유사한 개념이다. 코드 전문 #include using namespace std; long long GCD(long.. 2022. 6. 2. [프로그래머스] 단체사진 찍기 (문제 설명, 해결 과정, 코드 전문, c++) 문제 설명 해결 과정 코드 전문 문제 설명 본 문제는 프로그래머스의 단체사진 찍기 문제입니다. 해결 과정 data배열의 문자열에 인덱스로 접근하면 조건과 대상에 대해서 다룰 수 있습니다. 파싱한 듯한 결과가 됩니다. next_permutation 함수를 통해 모든 순열에 접근하여 해당 조건에 하나라도 부적합할 시 그 횟수를 저장해 일어날 수 있는 총 순열의 갯수 40320 - 부적합 수 를 반환합니다. 코드 전문 #include #include #include #include using namespace std; // 전역 변수를 정의할 경우 함수 내에 초기화 코드를 꼭 작성해주세요. int solution(int n, vector data) { string ka_friends = "ACFJMNRT"; .. 2022. 6. 1. [프로그래머스] 카카오프렌즈 컬러링북 (해결과정, BFS, DFS 복기, C++) 문제 설명 해결 과정, 코드 전문 BFS DFS 문제 설명 프로그래머스의 카카오프렌즈 컬러링북 문제입니다. 주의사항 1 = n || next_x < 0 || next_y < 0) continue; if (picture[next_x][next_y] != cur_val || visited[next_x][next_y] != 0) continue; visited[next_x][next_y] = 1; q.push({next_x, next_y}); one_area_size++; } q.pop(); } max_size_of_one_area = max(one_area_size, max_size_of_one_area); } } } answer[0] = number_of_area; answer[1] = max_size_o.. 2022. 5. 31. [프로그래머스] 오픈채팅방 (문제 설명, 해결 과정, 코드 전문, c++) 문제 설명 해결 과정 코드 전문 문제 설명 본 문제는 프로그래머스의 오픈채팅방 문제이다. 오픈채팅방에 닉네임a와 닉네임b 가 있습니다. 채팅방 안에서는 닉네임을 변경할 수 있으며 입장과 퇴장 시 닉네임과 함께 알림이 발생합니다. 채팅방을 나가고 다시 들어오게 되면 닉네임을 새로 설정할 수 있는데 그렇게 될 시 나가기 전에 올라왔던 알림의 닉네임 또한 바뀐 닉네임으로 변경됩니다. 입장과 퇴장, 닉네임 변경의 기록이 담긴 record라는 string 배열을 통한 올라온 모든 알림을 string 배열로 반환합니다. record안의 문자열은 명령 ID 닉네임이 공백으로 구분되어있다. 해결 과정 파싱을 통해 명령, ID, 닉네임의 세 문자열로 구분합니다. 최종 변경이 완료되기 전까지 닉네임을 포함한 알림반환은 무.. 2022. 5. 30. [프로그래머스] 문자열 압축 (문제 설명, 해결 과정, 코드 전문, C++) 문제 설명 해결 과정 코드 전문 문제 설명 본 문제는 프로그래머스의 문자열 압축 문제있습다. 해결 과정 주어진 문자열 s를 가능한 모든 경우로 나눠 문자열 2차원 문자열 벡터에 넣습니다. 이후 스택에 각 차원마다 중복 등을 감안하여 문자열의 길이를 구하고 각 차원마다 구해진 문자열 길이들 중 최소값을 반환합니다. 가능한 모든 경우로 문자열을 나눌때 기준의 길이가 전체 문자열의 절반을 초과할 수 없기에 s.size()/2 동안 반복한다. 1의 경우에는 예외적으로 반환합니다. 코드 전문 #include #include #include #include using namespace std; int solution(string s) { int answer = 0; vector sliced_s_vec(s.size(.. 2022. 5. 30. 이전 1 2 3 4 5 6 다음