문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/70129?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 설명] 다음 문제에서는 0과 1로 이루어진 어떤 문자열 x가 매개변수로 주어진다. x가 1이 될 때까지 이진 변환을 수행할 때의 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하라. [문제 풀이] 주어진 이진 변환 과정에 맞게 코드를 작성하면 되는 문제였다. 1. 문자열에서 1의 개수, 0의 개수 세기 2. 10..
문제 URL https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net [문제 설명] 다음 문제는 아래와 같은 주어진 조건이 있을 때 며칠이 지나면 토마토들이 모두 익는지, 그 최소 일수를 구하는 문제이다. [문제 풀이] 1. 삼차원 배열 입력받기, 값이 1인 위치는 큐에 따로 저장 2. BFS를 통해 익은 토마토와 인접한 토마토의 값을 1로 변경하기 3. 익지 않은 토마토(값이 0)가 있는지 확인하고 결과 출력하기 #include..
문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 설명] 다음 문제는 숫자들과 3가지의 연산문자(+, -, *) 만으로 이루어진 연산 수식이 전달되었을 때, 전달받은 수식에 포함된 연산자의 우선순위를 자유롭게 재정의하여 만들 수 있는 가장 큰 숫자를 제출하는 문제이다. 문제의 제한사항은 아래와 같다. [문제 풀이] 완전탐색으로 풀어야 하는 문제로 순열을 통해 연산자로 만들 수 있는 모든 경우를 구하여 연산을 진행해 주면 된다...
문제 URL https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net [문제 설명] 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 ..
문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 설명] 다음 문제는 마을의 개수 N, 각 마을을 연결하는 도로의 정보 road, 음식 배달이 가능한 시간 K가 매개변수로 주어질 때, 음식 주문을 받을 수 있는 마을(간선을 통한 이동 시간이 K시간 이하)의 개수를 return 문제이다. [문제 풀이] 문제는 다익스트라 알고리즘을 사용하여 풀 수 있는 문제였다. 우선순위 큐를 사용하여 현재 노드의 위치값과 이동거리를 삽입해 주고..
문제 URL https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net [문제 설명] 다음 문제는 N×M크기의 배열로 표현되는 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하는 문제이다. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. [문제 풀이] BFS를 사용하여 푸는 문제이다. (1..
문제 URL https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net [문제 설명] 다음 문제는 n(2 ≤ n ≤ 100)개의 도시, 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스, 각 버스를 한 번 사용할 때 필요한 비용이 존재할 때, 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 문제이다. [문제 풀이] n개의 도시가 주어지고, m개의 간선이 주어졌기 때문에 m개의..
문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 설명] 행렬에서 직사각형 모양의 범위를 여러 번 선택해, 테두리 부분에 있는 숫자들을 시계방향으로 회전시키려 한다. 행렬의 세로 길이(행 개수) rows, 가로 길이(열 개수) columns, 그리고 회전들의 목록 queries가 주어질 때, 각 회전들을 배열에 적용한 뒤, 그 회전에 의해 위치가 바뀐 숫자들 중 가장 작은 숫자들을 순서대로 배열에 담아 return 하도록 하는..
문제 URL https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net [문제 설명] 도스게임(뱀 게임) 규착에 따라 보드의 크기, 사과의 개수와 위치, 뱀의 방향 전환 정보가 주어질 때 게임이 몇 초에 끝나는지 출력하는 문제이다. [문제 풀이] 문제에서 요구하는 규칙을 그대로 구현하면 되었다. (하지만 개인적으로 문제 이해 자체가 어려웠다.) 사과의 위치를 저장하기 위해서 map을, 뱀의 꼬리를 자르기 위해서 queue를 사용했다. #include #inclu..
문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 설명] 가로의 길이 W와 세로의 길이 H가 주어질 때, 대각선이 그려진 사각형을 제외하고 사용할 수 있는 정사각형의 개수를 구하는 문제이다. [문제 풀이] 정해진 규칙에 따라 구현하면 되는 문제였는데 그 규칙을 찾는 것이 쉽지 않았다. 해당 문제에서 대각선에 의해 잘려나가는 사각형의 개수는 w+h-(두 수의 최대공약수)이다. [주의할 점] 입력이 최대 1억까지이기 때문에 lon..