구현(12)
-
[BOJ] 2636번 | 치즈 (C++)
🔗문제 보러가기 2636번: 치즈 첫째 줄에는 사각형 모양 판의 세로와 가로의 길이가 양의 정수로 주어진다. 세로와 가로의 길이는 최대 100이다. 판의 각 가로줄의 모양이 윗 줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진 www.acmicpc.net 👨💻풀이 과정 구현 문제는 요구 사항이 많기 때문에, 구현해야 할 기능별로 함수화하여 접근하는 게 가장 좋은 것 같습니다. 이 문제에서 구현해야 할 요구사항들은 다음과 같습니다. 1. 문제에서 주어진 입력을 받는 함수 문제에서 가로 행의 개수와 세로 행의 개수, 그리고 판의 상태를 입력으로 줍니다. 이러한 내용들을 배열에 입력받되, 치즈의 개수 또한 세서 별도의 변수에 저장해주었습니다. 이 치즈의 개수가 루프 종료 조건이기 때문이죠. 2. 공기를 주변으..
2024.03.22 -
[BOJ] 14499번 | 주사위 굴리기 (C++)
🔗문제 보러가기 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 👨💻풀이 과정 일종의 공간지각능력(?)을 필요로 하는 구현 문제입니다. 초기에 주어진 주사위 상태에서 동, 서, 남, 북 방향으로 구르면 그에 따라 주사위 면에 적힌 숫자를 잘 정리하는 절차가 필요하죠. 그래서 저는 6개의 원소를 가지는 1차원 배열에다가 주사위의 각 면에 적힌 숫자 정보를 관리했습니다. enum DIRECTION { TOP, RIGHT, LEFT, FORWARD,..
2024.03.17 -
[Programmers] Lv3. [1차] 셔틀버스 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 제 문장 독해력에 하자가 있는건진 몰라도, 처음에 문제 읽고 무슨 소리지 했었습니다. 핵심은 셔틀 버스 운행 횟수인 \(n\) 번 내에 사무실에 갈 수 있는 가장 늦은 시간을 고르는 것이었네요. 단순 구현 문제이긴 한데, 시간과 관련된 문제는 항상 계산 부분에서 주의를 기울여야 하는 것 같습니다. 일단은 계산하기 쉽게, string을 int로 변환하는 작업을 먼저 해보죠. 1. String 👉🏻 Int로 변환하는 함수 작성 주어지는 시간은 "HH:MM" 형태를 띄고 있다고 문제..
2023.11.18 -
[BOJ] 15686번 | 치킨 배달 (C++)
🔗문제 보러가기 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 🧑🏻💻풀이 과정 보자마자 조합(Combination)이 떠오르긴 했는데, 이게 정말 단순히 조합만으로 풀릴까?... 시간 초과가 걸리진 않을까?, 중복 계산을 줄일 수 있는 방법이 없을까? 고민을 했는데, 쓸 데 없는 고민이었단 걸 깨달았습니다. 아무래도 집의 개수가 2N개를 넘지 않고, N과 M의 개수가 그렇게 크지 않기 때문인 것 같네요. 게다가, 집과 치킨 집만 사용하니 \( N \times N \) 크기를 모두 탐색할..
2023.08.24 -
[Programmers] Lv2. 순위 검색 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 정말 정말 정말 정말 정말 짜증났던 문제입니다. C++은 왜 Python처럼 문자열 라이브러리가 강력하지 않은 걸까요... 문제를 보자마자 생각났던 건 데이터베이스 수업 시간 때 배웠던 B+ 트리였지만, 코딩 테스트 칠 때 언제 그걸 다 구현하겠습니까... 노가다적인(브루트 포스) 방법 말고 다른 방법이 없나 고민하다가 없어서 다른 사람들 풀이를 약간만 봤는데, 거의 다 브루트 포스로 쿼리를 추가해 놓는 방법을 쓰셨더라구요. 가령 예를 들어, "java backend junio..
2023.07.10 -
[Programmers] Lv2. 혼자서 하는 틱택토 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 3 X 3 맵에서 먼저 가로 혹은 세로 혹은 대각선 3개의 라인을 만드는 사람이 이기는 게임입니다. 하지만, 이겼는가 졌는가를 보는 것이 아니라, 올바르게 게임을 진행했는가를 보는 것이므로 다음과 같은 사항들을 체크해야 합니다. 번갈아 가면서 진행해야 하는데, 어느 한 쪽이 2번 연속 진행한 경우 ( | 'O'의 개수 - 'X'의 개수| > 1) 선공이 먼저 놔야 하는데, 후공이 먼저 놓은 경우 ( 'O'의 개수 < 'X'의 개수 ) 둘 다 이겼다고 판정할 경우 ( 'O' 3개..
2023.07.05