목록Programmers (190)
GitHubSeob

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 문제가 생각보다 복잡해 보이지만 복잡하게 생각 안 하면 풀만한 문제였다. 재생된 음악에서 m을 찾는 문제이다. 재생된 시간보다 악보다 짧다면 해당 악보를 여러 번 반복했다는 의미이다. 단순히 생각하면 재생된 시간에 맞춰 악보를 여러 번 나열하면 된다. 악보에 사용되는 음중에서 '#'이 붙은 음중 A#, C#, D#, F#, G#, 이렇게 5가지가 있다. 2글자여도 한음이므로 '#'이..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 DFS를 이용하면 쉽게 풀 수 있는 문제이다. 2차원 bool형 벡터 visited를 이용하여 'X'인 곳을 모두 true로 바꾼다. int max_day; void DFS(int y, int x) { for (int idx = 0; idx = N..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 투 포인터를 이용해 문제를 풀었다. sum에 left부터 right까지의 값을 더하면서 값이 k가 될 때 answer에 저장한 값과 비교하면서 값을 갱신한다. sum이 k보다 작을 때는 sequence[right]의 값을 sum에 더하고, sum이 k일 때는 answer에 저장된 부분 수열의 길이보다 현재 길이가 짧을 경우 갱신한다. sum이 k보다 클 때는 sequence[lef..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 큐를 pop 하고 다른 큐로 push 하는 작업을 묶어서 횟수를 센다. 큐 두 개를 붙여 한 벡터처럼 생각하고 투포인터를 이용해서 문제를 풀었다. 투 포인터를 이용해 left, right부분을 설정하고 합을 구하면서 비교한다. 합이 K보다 크면 left부분을 sum에서 빼고, 합이 K보다 작으면 right부분을 sum에 더한다. 이러면서 모든 경우를 탐색한다. 만약 sum이 K와 ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 해당 그림을 2차원 벡터로 표현할 것이다. 벽돌들을 맨 왼쪽으로 모두 당긴 모양을 생각하면 된다. 맨 위 맨 왼쪽 벽돌부터 시작하여 숫자는 아래로, 오른쪽으로, 왼쪽 대각선으로 이동하며 커진다. for (int y = 0; y < N; ++y) { board[y] = vector(y + 1, 0); max_size += y + 1; } 맨 위줄은 y=0, 개수는 1개이다. 그다음 줄..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 재귀를 이용하여 풀었다. 왼쪽 맨 위, 오른쪽 맨 아래 좌표를 구해서 둘의 좌표가 같을 때까지 1/4씩 계속 나눈다. 그다음 왼쪽 맨 위부터 오른쪽 맨 아래까지 모든 칸을 탐색하면서 이전 칸의 값과 같은지를 판별한다. 만약 하나라도 다르면 다시 나눈다. 만약 다 같으면 해당 숫자에 해당하는 answer에 값을 1씩 더한다. 코드 #include #include using namesp..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 테스트케이스 4번 6번만 계속 틀려서 고생 좀 했다. 질문글을 보니 새 트럭이 다리에 들어간 시간이 이미 있던 트럭이 나가는 시간보다 빠르면 안 된다고 적혀있었다. 내 코드와는 관련이 없을 거라 생각하고 그냥 넘겼는데 다른 질문글로는 해결이 안 돼서 다시 보고 조건을 하나 추가했더니 맞혔다. //if (prev_time == time) ++time; 4, 6번 틀림 if (prev_..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 경우의 수를 따져가며 풀어야 되는 문제인지 알고 조건을 여러 개 두어 풀었는데.. 다른 풀이를 보니 스택에 다 집어넣고 pop 하면서 푸는 풀이가 있더라고요.. 저는 제가 푼대로 풀이하겠습니다. 컨베이어 벨트의 맨 앞에 있는 박스를 box_num이라는 변수의 값으로 둔다. 보조 컨테이어 벨트를 나타내는 박스들을 stack을 이용해 표기한다. (스택의 top부분이 보조 컨베이어 벨트..

문제 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..