Coding Test/Programmers(62)
-
[Programmers] Lv3. 이중우선순위큐 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🧑💻풀이 과정 (1)자동으로 오름차순으로 정렬되고, (2)중복 숫자 저장이 되며, (3)최솟값과 최댓값에 바로 접근할 수 있는 자료구조를 선정해야 합니다. 네, 바로 multiset이죠. multiset을 이용하면 쉽게 구현할 수 있습니다. 알고리즘은 다음과 같습니다. 공백을 기준으로 입력을 분리하여, "명령어"와 "데이터" 문자열로 분리합니다. "명령어"가 'I(대문자 i)'라면, multiset에 데이터를 삽입합니다. "명령어"가 'D'라면, 그 뒤에 오는 데이터가 1이냐, -1이냐에 따..
2023.09.10 -
[Programmers] Lv2. 단체사진 찍기 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 저는 DFS를 이용하여 8명의 캐릭터들의 순열마다 조건식을 검사하였습니다. 한 가지 실수했던 게, 조건식의 다섯번째 글자에 해당하는 간격은 두 캐릭터 사이의 캐릭터 숫자라는 걸 까먹었습니다. 저처럼 인덱스 탐색 방식으로 할 시, 간격에다가 -1을 해주는 추가 작업이 필요합니다. int distance = abs(sourceIndex - targetIndex) - 1; ✏️소스 코드 및 결과 #include #include #include using namespace std; c..
2023.08.12 -
[Programmers] Lv2. 카카오프렌즈 컬러링북 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 BFS로 풀 수 있는 쉬운 문제입니다. 색칠되지 않은 영역은 지나간다. 색칠되어 있고, 방문한 적이 없는 픽셀이라면, 해당 픽셀을 기준으로 상하좌우 BFS 탐색을 시작한다. BFS 탐색이 끝났다면 영역 개수를 1개 늘려주고, 이전 영역 크기와 비교하여 더 큰 값으로 갱신한다. ✏️소스 코드 및 결과 #include #include using namespace std; const int DIRECTION_COUNT = 4; const int rowDirections[DIRECTI..
2023.07.13 -
[Programmers] Lv2. 순위 검색 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 정말 정말 정말 정말 정말 짜증났던 문제입니다. C++은 왜 Python처럼 문자열 라이브러리가 강력하지 않은 걸까요... 문제를 보자마자 생각났던 건 데이터베이스 수업 시간 때 배웠던 B+ 트리였지만, 코딩 테스트 칠 때 언제 그걸 다 구현하겠습니까... 노가다적인(브루트 포스) 방법 말고 다른 방법이 없나 고민하다가 없어서 다른 사람들 풀이를 약간만 봤는데, 거의 다 브루트 포스로 쿼리를 추가해 놓는 방법을 쓰셨더라구요. 가령 예를 들어, "java backend junio..
2023.07.10 -
[Programmers] Lv2. 이모티콘 할인행사 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 역시 사람은 잠을 잘 자고, 밥 먹고, 커피 한 잔 마시면서 진행해야 능률이 좋나 봅니다. 저번에 풀 땐 머리가 안 돌아가서 그냥 시간만 보내고 있었는데, 이번엔 카페에 와서 정상 컨디션으로 푸니까 금방 풀었네요. 판매하는 이모티콘의 최대 개수는 7개이고, 할인은 40%, 30%, 20%, 10% 이렇게 4가지 뿐이므로 최악일 때의 모든 경우의 수는 \( 4 ^ 7 = 16,384 \) 가지입니다. 유저의 최대 수가 100명이므로 \( 100 \times 7 \times 16,..
2023.07.09 -
[Programmers] Lv2. 요격 시스템 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 기존에 작성했던 코드랑 새로 작성한 코드랑 전혀 다른 점이 없는 것 같은데, 새로 작성한 코드는 맞았습니다. 무슨 차이인 거지... 제가 푼 방식은 다음과 같습니다. 미사일들의 start 지점을 기준으로 오름차순 정렬합니다. (start 지점이 같다면, end가 작은 걸로) 현재 구간의 마지막 부분(currentEnd)이 미사일의 시작 부분과 같거나 크다면, 현재 구간에선 요격할 수 없는 미사일입니다. 따라서, 새 구간을 늘리고, 현재 미사일의 마지막 부분을 currentEnd..
2023.07.06