Coding Test/Programmers(62)
-
[Programmers] Lv2. JadenCase 문자열 만들기 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 "공백문자가 여러 개 나올 수 있다." 라는 조건을 처음에 제대로 적용 못했었습니다. " 3people unFollowed me " 이런 식으로 양 옆에도 공백 문자가 붙을 수 있다는 점을 고려해야 하죠. JadenCase 문자로 바꿔준 후에도 기존 문자열의 공백들은 그대로 유지해야 합니다. 따라서, 저는 원래 기존 문자열에서 문자열이 나오면 JadenCase 문자열로 바꿔주고, 공백이면 아무것도 건드리지 않는 전략으로 갔습니다. ✏️소스 코드 및 결과 #include usin..
2023.06.11 -
[Programmers] Lv2. 거리두기 확인하기 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 1. 주어진 대기실을 순회하며, 각 응시자들 좌표(행, 열)값 저장하기 2. 저장한 응시자들 좌표를 중복 없이 2개 뽑아, 거리두기 유무 검사하기 - 맨해튼 거리가 2보다 클 경우에는 거리 두기를 잘 지키고 있다고 판정 - 맨해튼 거리가 2보다 작을 경우에는 거리 두기를 지키지 않고 있다고 판정 - 맨해튼 거리가 2일 경우 (P1, P2가 있다고 가정) - 가로로 한 칸 띄어져 있는 경우 : P1.column + 1 부분을 검사 (P1.column < P2.column) - 세..
2023.06.09 -
[Programmers] Lv2. 수식 최대화 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 자료구조 시간에 전위표기식(Prefix), 중위표기식(Infix), 후위표기식(Postfix)에 대해 배운 적이 있으나, 시간이 오래되어 기억이 잘 안 나더라구요. 그래서 다시 한 번 찾아봤습니다. 컴파일러가 연산자 우선순위에 따라 중위표기식을 후위표기식으로 변환한 후에, 계산을 진행한다고 하더라구요. 숲을 보지 못하고 나무만 볼 수 있는 컴퓨터 입장에선 수식을 왼쪽에서 오른쪽으로 차례대로 읽어가며 계산하는 게 편하죠. 그에 반해, 사람은 숲을 볼 수 있습니다. 눈으로 전체 수..
2023.06.08 -
[Programmers] Lv2. 롤케이크 자르기 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 철수와 동생의 각 토핑 종류 수만 같으면 되기에, 중복이 되지 않는 자료구조가 필요합니다. 데이터의 개수가 최대 1,000,000개이기 때문에 검색, 삽입, 삭제에 좋은 해시(Hash)를 쓰기로 했습니다. Key-value 구조인 unordered_map과 Key 구조인 unordered_set을 사용하였습니다. 전략은 다음과 같습니다. 저는 처음에 철수에겐 한 조각도 없고, 동생이 모든 케이크 조각을 가지고 있는 상태로 출발합니다. topping을 순회하며, 각 토핑의 개수 ..
2023.06.08 -
[Programmers] Lv2. 리코쳇 로봇 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 처음에는 DFS로 접근을 했다가 결국 못 풀었습니다. 아마 그대로 진행했어도 가지 치기를 못해서 시간 초과가 났을 것 같네요. 그래서 BFS로 전략을 바꿔 풀다 보니 알게 된 사실인데, 제가 설계를 조금 잘못했었더라구요. 장애물이나 맨 끝에 부딪힌 빈 공간만 방문 표시를 했었어야 했는데, 지나간 경로를 다 방문 표시 해버렸습니다..ㅎㅎㅎ 아무튼, BFS를 통한 전략은 다음과 같습니다. 로봇의 처음 위치 'R', 목표 지점 'G'의 좌표를 알아낸 후 저장해둔다. R의 좌표를 방문..
2023.06.07 -
[Programmers] Lv2. 광물 캐기 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 저는 백트래킹(Backtracking)을 이용하여 풀었습니다. 구현 과정은 다음과 같습니다. 광물을 5개씩 차례대로 분리하고, 남은 광물 수가 5개가 안 될 경우에는 남은 광물을 모조리 담아 2차원 배열 생성 곡괭이 배열과 분리한 2차원 광물 배열을 순회하면서, 곡괭이를 다 썼거나 광물이 없을 때까지 피로도 합산 진행 합산한 피로도가 이전에 계산한 최솟값 피로도보다 작다면 변경 이후 한 단계 뒤로 가서 다음 탐색은 없는지 진행 문제를 풀고 나서 다른 분들 풀이는 어떨까 하고 찾..
2023.06.06