[C++] 가장 가까운 같은 글자
가장 가까운 같은 글자문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. 따라서 최종 결과물은 [-1, -1, -1, 2, 2, 2]가 됩니다. 입출력 예"banana"[-1, -1, -1, 2, 2, 2]"foobar"[-1, -1, 1, -1, -1, -1] 2중 반복문으로 해당 글자 인덱스부터 뒤에서 앞으로 해당 글자가 있는지 찾아갑니다. 풀이#include #include using namespace std;vector solution(string s) { vector..
2024. 6. 22.
[C++] 추억 점수
추억 점수 그리워하는 사람의 이름을 담은 문자열 배열 name, 각 사람별 그리움 점수를 담은 정수 배열 yearning, 각 사진에 찍힌 인물의 이름을 담은 이차원 문자열 배열 photo가 매개변수로 주어질 때, 사진들의 추억 점수를 photo에 주어진 순서대로 배열에 담아 return하는 solution 함수를 완성해주세요. 입출력 예 ["may", "kein", "kain", "radi"] [5, 10, 1, 3] [["may", "kein", "kain", "radi"],["may", "kein", "brin", "deny"], ["kon", "kain", "may", "coni"]] [19, 15, 6] ["kali", "mari", "don"] [11, 1, 55] [["kali", "mari..
2023. 9. 18.
[C++] 뒤에 있는 큰 수 찾기
뒤에 있는 큰 수 찾기 정수로 이루어진 배열 numbers가 있습니다. 배열 의 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이 있는 수를 뒷 큰수라고 합니다. 정수 배열 numbers가 매개변수로 주어질 때, 모든 원소에 대한 뒷 큰수들을 차례로 담은 배열을 return 하도록 solution 함수를 완성해주세요. 단, 뒷 큰수가 존재하지 않는 원소는 -1을 담습니다. 제한사항 4 ≤ numbers의 길이 ≤ 1,000,000 1 ≤ numbers[i] ≤ 1,000,000 입출력 예 [2, 3, 3, 5] [3, 5, 5, -1] [9, 1, 5, 3, 6, 2] [-1, 5, 6, 6, -1, -1] 제한사항을 확인해 보면, 최대 길이가 100만인데 O(n^2)의 시간..
2023. 9. 15.
[C++] (우선순위 큐) 큰 숫자만 계속 고르기
큰 숫자만 계속 고르기 n개의 숫자가 주어졌을 때 그 중 가장 큰 숫자를 골라 1씩 빼는 작업을 m번 반복하려고 합니다. 이를 반복한 이후 남아있는 숫자들 중 최댓값을 구하는 프로그램을 작성해보세요. 단, 가장 큰 숫자가 여러 개라면 이 중 아무거나 하나를 골라 진행하면 됩니다. 입출력 예제 입력: 5 4 1 5 4 2 1 출력: 3 처음에 [1, 5, 4, 2, 1] 이 있습니다. 이 중 최대를 골라 1을 빼주면 결과는 [1, 4, 4, 2, 1]이 됩니다. (1회) 이 중 최대를 골라 1을 빼주면 결과는 [1, 3, 4, 2, 1]이 됩니다. (2회) 이 중 최대를 골라 1을 빼주면 결과는 [1, 3, 3, 2, 1]이 됩니다. (3회) 이 중 최대를 골라 1을 빼주면 결과는 [1, 2, 3, 2, ..
2023. 7. 28.
[C++] 같은 숫자는 싫어
같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 입출력 예 [1,1,3,3,0,1,1] [1,3,0,1] [4,4,4,3,3] [4,3] 주어진 arr..
2023. 7. 18.
[C++] (queue) 프로세스
프로세스 운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다. 1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다. 2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다. 3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, B] 순으로 실행하게 됩니다. 현재..
2023. 7. 18.