https://school.programmers.co.kr/learn/courses/30/lessons/42576# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 map을 사용해서 해결하였다.완주한 선수의 목록을 map을 통해 정리한다. 이때 동명이인이 있을 수 있으니 1이상의 수로 정리한다. 마지막으로 선수 목록을 순회하며 map에 1미만의 값을 갖는 선수를 찾는다.동명이인이 있을 수 있으니 map의 값이 있는 경우 1을 감소시킨다. #include #include #include using namespace std;int N, M;string ..
분류 전체보기
https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 완전 탐색을 통해 정답을 가장 많이 맞춘 학생을 찾는 문제이다.문제 수는 최대 10000개 이기 때문에 단순 반복문으로 문제를 해결할 수 있다.또한 3명의 학생이 찍는 형식은 정해져있다.학생 1은 5개의 경우가 반복된다. 또한 학생 2는 8개, 학생 3은 10개의 경우가 반복된다.따라서 i%M의 연산을 통해 현제 번호에 찍은 형식을 알 수 있다. 처음 문제를 해결할 때 가장 정답을 많이 맞..
https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 벡터 slice 문제이다. vector를 slice하기 위해서는 begin()과 end() 함수를 사용해야 한다.begin() 함수는 벡터의 첫번째 인덱스를 가리키는 iterator를 반환한다. 마찬가지로 end() 함수는 벡터의 마지막 인덱스를 가리킨다. 문제에서 i에서 j까지 배열을 slice하라고 나타냈기 때문에 begin()에 i와 j 값을 더해야한다.이때 i는 0부터 시작하는 것이..
https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 삽입 시 같은 인형을 2개 발견하면 2개의 인형을 터트리는 문제이다.따라서 인형을 삽입하는 공간을 vector로 선언하여 맨 뒤의 인형이 무엇인지 판단해야한다.또한 인형을 삽입하기 전에 같은 인형이 바구니의 맨 위에 있는지 확인한다. 바구니가 비어있지 않고 바구니의 맨 위가 삽입할 인형과 같다면 인형 2개를 터트리고 맨 위에 있는 인형을 바구니에서 제거한다.같은 인형이 아닌 경우 바구니의 ..
https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 왼손과 오른손중 어느 손이 키패드에 가까운지 찾는 문제이다.단 1, 4, 7 인 경우 반드시 왼손으로 하고, 3, 6, 9인 경우 오른손으로 한다.따라서 위 경우는 왼손이나 오른손으로 출력한다. 마지막으로 2, 5, 8, 0인 경우 왼손과 오른손 중 가장 가까운 손을 찾아야한다.이 경우는 dfs를 사용해서 어느 손이 가장 작은 값인지 찾았다. #include #include #include..
https://school.programmers.co.kr/learn/courses/30/lessons/12930 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 공백을 기준으로 단어를 판단하면 해결할 수 있다.이때 짝수 인덱스는 대문자로 홀수 인덱스는 소문자로 만들어야한다.주의할점은 짝수 인덱스가 원래 대문자인 경우 대순자로 홀수 인덱스가 원래 소문자인 경우 소문자로 저장해야한다.이를 위해 짝수 일때 대문자인지 홀수 일때 소문자인지 판단하면 된다. #include #include using namespace std;int N;string solut..
https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음 문제를 접하고 이중 반복을 사용해 해결하고자 하였다.이중 반복을 사용하면 최악의 경우 1,000,000^2의 반복을 실행해야 하기 때문에 대략 2초가 걸릴 수 있다.따라서 시간 초과가 발생 하였다. 이 문제를 해결하기 위해선 배열 2개를 사용해야한다.answer 배열은 numbers 배열과 같은 크기로 할당하고 -1로 초기화한다. 다음 인덱스를 저장할 배열을 생성한다.현재 검사할 값이 인덱스를..
https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 대실 시간이 겹치는 횟수를 구하면 해결할 수 있다.주어진 배열에는 입장 시간과 퇴실 시간이 주어진다. 입장 시간과 퇴실 시간은 ':'을 기준으로 시간과 분이 나누어 진다.따라서 문자열에서 2개의 요소를 substr하고 나머지는 분으로 사용한다. 이때 시간에 100을 곱해서 15:10을 1510으로 만들어준다.하지만 퇴실 시간의 경우 10분의 청소 시간이 있으므로 입장 시간과 동일한 연산에..