본문 바로가기

분류 전체보기166

[Programmers] 예상 대진표 https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 아래와 같은 규칙을 반복적으로 적용하여 대진 라운드를 계산할 수 있다. $N$ 명의 참가자에 대하여, 번호 순으로 $N / 2$ 명씩 그룹을 지었을 때, A와 B가 서로 다른 그룹에 있는 경우: A와 B가 각각 반드시 승리해서 다음 라운드로 진출해야하므로, A의 번호 및 B의 번호에 1을 더한 뒤 2로 나눈 값으로 갱신하고, 라운드 수를 증가시킨다. A와 B가 서로 같은 그룹.. 2023. 8. 28.
[Programmers] N개의 최소공배수 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 일반적으로 프로그래밍을 통해 최소공배수(least common multiplier, LCM)를 구하기 위해 사용하는 알고리즘은 두 개의 숫자에 대한 최소공배수를 구하는 알고리즘이다. 2 개 이상의 숫자들에 대한 최소공배수는 아래와 같이 pairwise 연산을 통해서 구할 수 있음을 이용하고자 하였다. $$LCM(a, b, c) = LCM( LCM( a, b ), c )$$ 한.. 2023. 8. 27.
[Programmers] 올바른 괄호 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 스택(stack) 자료 구조의 원리에 따라 '(' 문자가 들어오는 수 만큼 문자를 카운팅하고, ')' 문자가 들어오는 수 만큼 카운팅한 횟수를 다시 낮추는 방식을 활용하고자 하였다. 구현 함수를 실행하여 괄호 문자를 카운팅을 하는 동안 아래와 같은 경우는 문제에서 요구하는 올바른 괄호가 아니다. 문자열을 따라 첫 문자부터 마지막 문자까지 카운팅을 완료하고 난 뒤의 카운트가 0.. 2023. 8. 27.
[Programmers] 영어 끝말잇기 https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 주어진 규칙에 따라 $i = 2, 3, ..., n$에 대하여, $i$번째 사람이 성공적으로 끝말잇기를 하는지 여부를 판단한다. 이때 이미 등장한 단어인지를 확인하는 과정을 위해 해시 맵(hash map) 자료 구조를 활용하여 문자열에 대한 탐색을 빠르게 수행하고자 하였다. 구현 해시 맵 자료 구조를 사용하기 위하여 std::unordered_map 클래스 및, 해당 클래스의.. 2023. 8. 27.
[Programmers] 점프와 순간 이동 https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 건전지 사용량을 줄이기 위해서는 최대한 순간이동을 활용해야하므로, 가능한 한 적은 양의 건전지 사용량으로 이동하고자 하는 거리를 2의 배수로 맞춘 뒤 순간이동을 활용한다. 구현 [스포 주의] 아래 '더보기'를 누르면 코드가 나오니 주의하세요~ 더보기 int solution(int n) { if (n > 1) { if (n % 2) return solution(n / 2) + .. 2023. 8. 27.
[Baekjoon] 1012번: 유기농 배추 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 문제 해결 과정 착안 상하좌우로 연결된 배추들 사이에는 하나의 배추흰지렁이만 있어도 해충 예방이 가능하므로, 이를 표현하기 위해 편의상 아래와 같은 과정을 주어지는 배추밭 모양에 따라 반복적으로 수행하여 필요한 총 배추흰지렁이의 수를 계산한다. 배추가 심어진 땅이 발견되면 필요한 배추흰지렁이의 수를 1만큼 증가시킨다. 깊이 우선 탐색(depth-first search, DFS) 또는 너비 우선 탐색(bread.. 2023. 8. 24.