본문 바로가기

프로그래머스52

[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.
[C++] 프로그래머스 : 오픈채팅방 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 문제 풀이 가장 중요한 것은 중간 과정이 필요가 없어 최종 로그만 보이면 된다는 것이다. ID 자체는 중복이 되면 안 되니 맵을 사용 해 ID : 별명 정보를 저장하였고, 벡터에는 ID : 명령 을 저장해서 최종 로그의 명령을 저장한다. stringstream을 이용해서 string을 잘라준다. tmp에는 명령어, id, 별명 순서로 저장되어 있다. 반복문을 통.. 2021. 9. 21.
[C++] 프로그래머스 : 문자열 압축 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문제 풀이 브루트 포스로 접근했다! 첫 반복문의 최대 반복 회수는 입력받은 문자열의 반만큼인데, 단위가 입력받은 문자열의 길이의 반 이상이라면 압축하는 의미가 없기 때문이다. 다음 반복문에선 비교를 통해서 반복되는지 확인해준다. 같다면 압축 회수(=cnt)를 증가시키고 아니라면 str에 입력해준다. 최종적으론 현재 answer와 str의 길이를 비교해서 .. 2021. 9. 20.
[C++] 프로그래머스 : 약수의 개수와 덧셈 https://programmers.co.kr/learn/courses/30/lessons/77884?language=cpp 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 문제 풀이 시작값부터 종료값까지의 약수의 개수만 카운트해주면 되는 문제이다. 느낀 점 입력값의 범위가 매우 작아서 단순한 브루트 포스로 해결할 수 있었다, 쉬운 문제라서 많이 고민하지 않았다. 코드 using namespace std; int solution(int left, int ri.. 2021. 9. 13.
[C++] 프로그래머스 : 키패드 누르기 https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 문제 풀이 왼손과 오른손의 좌표와 누를 버튼까지의 거리를 저장하는 구조체를 선언한다. 발생하는 경우는 3가지이다. 1. 왼쪽(1, 4, 7)을 누르는 경우 2. 오른쪽(3, 6, 9)을 누르는 경우 3. 가운데(2, 5, 8, 0)를 누르는 경우 1번 .. 2021. 9. 13.
[C++] 프로그래머스 : 로또의 최고 순위와 최저 순위 https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 문제 풀이 알아볼 수 없는 숫자(0)의 개수는 unknown으로 저장하고 그 외에 숫자를 당첨 숫자에 비교해서 cnt에 저장한다. 0이 모두 당첨 숫자가 된다면 rank는 최고가 될 것이고 모두 당첨 숫자가 아니라면 rank가 최저가 될 것이다. 따라서 cnt에 unknown을 더한 값을 계산했을 때 최고 순위, c.. 2021. 7. 1.