목록Programmers/Level 2 (79)
GitHubSeob

문제 https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 처음엔 bitset, xor연산을 이용해서 구하려 했는데 테스트케이스 10, 11번에서 시간초과가 떠서 방법을 바꿨다. 최하위 비트에서부터 시작해서 0인 자리를 찾고 0인 자리와 그 아래 자리의 비트를 반전시키면 된다. 주어지는 숫자의 최대값은 10^15 이기 때문에 넉넉하게 bitset을 60자리로 표현하였다. for (int idx = 0; idx < 60; ++idx) { if..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 백준에도 똑같은 문제가 있다. https://www.acmicpc.net/problem/11726 타일의 높이는 2로 고정되어 있고 블록은 가로, 세로 두 가지가 있다. 블록은 1x2, 2x1 이렇게 있으므로 두 가지를 생각하면 된다. -1칸에서 세로로 블록을 채운 가짓수, -2칸에서 가로로 블록을 채운 가짓수를 더하면 된다. -2칸에서 세로로 블록을 채운 경우는 -1칸에서 세로로 ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 DP를 이용해 풀었다. 1부터 y까지 사용할 것이기 때문에 y + 1의 크기만큼 벡터를 선언한다. x를 y까지 1씩 더하면서 반복문을 돌린다. DP [x + n]이 DP [x] + 1보다 크다면 DP [x + n] = DP [x] + 1이 된다. x에서 n을 더하면 x + n이 되므로 x칸 도달 횟수에 +1을 한 값이 DP [x + n] 이 된다. x는 x부터 y까지이므로 INF를..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 토핑의 개수는 상관없이 종류의 개수만 따지면 된다. 먼저 토핑 벡터를 탐색하면서 토핑 종류와 개수를 저장하는 map에 토핑 종류별 개수를 저장한다. 위 반복문이 종료됐으면 다시 반복문을 통해 토핑벡터를 탐색한다. 형 토핑을 저장하는 map에 토핑을 추가하고, 전체 토핑에서 현재 토핑의 개수를 한 개 없앤다. 만약 0개라면 erase를 통해 map에서 지운다. 형 map의 크기와 전..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 꼭 2*2 블록만이 지워지는 것이 아닌 2*4, 3*3 이런 식으로 여러 형태로 지워질 수 도 있다. 따라서 모든 y, x를 탐색하면서 해당 블록과 인접한 3개의 블록이 같은지를 판별해야 한다. 해당 블록과 인접한 3개의 블록이 같은지, 범위를 벗어나는지, 이미 지운 블록인지를 판별하는 함수를 구현한다. 지워야 하는 블록을 지우는 함수를 구현한다. loc.insert({ -1,-1 ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 함수 2개와 stable_sort의 compare 함수를 구현했다. 함수는 대소문자 구분을 하지 않으므로 모든 대문자를 소문자로 변환하는 lower함수, 입력받은 문자열에는 띄어쓰기가 없으므로 istringstream 대신 직접 파싱 하는 findNum 함수이다. 소문자 변환 함수는 string의 문자 하나하나 tolower을 통해 바꾼다. pii findNum(string str)..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 자신보다 뒤에 있는 숫자 중에서 자신보다 크고, 가장 가까이 있는 수를 뒷 큰 수라고 한다. 스택을 이용하여 {값, 인덱스}를 저장한다. 현재 탐색하고 있는 값이 스택의 top부분 보다 크면, 현재 값이 스택에 있는 모든 수의 뒷 큰 수가 된다. 반복문을 통해 스택의 top과 현재 값을 비교하여 뒷 큰 수가 되면 ansnwer에 인덱스들을 저장한다. 반복문이 종료되면 스택에 pus..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 완전탐색으로 A부터 EEEEE까지 모든 경우의 수를 set에 저장한 뒤 A부터 탐색하여 풀었다. 미리 char형 배열을 선언하여 'A', 'E', 'I', 'O', 'U'를 저장한다. DFS를 통해 완전탐색을 한다. 6자리 이상은 구할 필요가 없으므로 cnt > 4이면 return 한다. (DFS를 실행하기 전에 미리 다음자리의 단어를 구하므로) 그 외의 경우는 현재 고른 알파벳의 ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 좌표는 (-5, -5)부터 (5, 5)까지 11*11의 크기를 갖는다. 캐릭터는 (0, 0)의 위치에서 시작하고 4가지 명령어에 따라 움직이며, 좌표 평면을 벗어날 수 없다. 배열에 인덱스는 음수가 될 수 없으므로 (0, 0)부터 (10, 10)까지, 캐릭터는 (5, 5)의 위치에 있다고 두고 문제를 풀었다. bool isEnd(int y, int x) { if (y < 0 || y..