Lv2(51)
-
[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 -
[Programmers] Lv2. 혼자서 하는 틱택토 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 3 X 3 맵에서 먼저 가로 혹은 세로 혹은 대각선 3개의 라인을 만드는 사람이 이기는 게임입니다. 하지만, 이겼는가 졌는가를 보는 것이 아니라, 올바르게 게임을 진행했는가를 보는 것이므로 다음과 같은 사항들을 체크해야 합니다. 번갈아 가면서 진행해야 하는데, 어느 한 쪽이 2번 연속 진행한 경우 ( | 'O'의 개수 - 'X'의 개수| > 1) 선공이 먼저 놔야 하는데, 후공이 먼저 놓은 경우 ( 'O'의 개수 < 'X'의 개수 ) 둘 다 이겼다고 판정할 경우 ( 'O' 3개..
2023.07.05