C++ 1555

백준 1189번 컴백홈

문제 링크입니다: https://www.acmicpc.net/problem/1189 1189번: 컴백홈 첫 줄에 정수 R(1 ≤ R ≤ 5), C(1 ≤ C ≤ 5), K(1 ≤ K ≤ R×C)가 공백으로 구분되어 주어진다. 두 번째부터 R+1번째 줄까지는 R×C 맵의 정보를 나타내는 '.'과 'T'로 구성된 길이가 C인 문자열이 주어진다 www.acmicpc.net R, C, K 범위가 작기 때문에 완전탐색으로 풀어도 되는 문제였습니다. 개발환경:Visual Studio 2022 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2024.03.27

백준 14620번 꽃길

문제 링크입니다: https://www.acmicpc.net/problem/14620 14620번: 꽃길 2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다. 진아가 가진 꽃의 씨앗은 꽃을 심고나면 정확히 1년후에 꽃이 피므 www.acmicpc.net 전형적인 백트래킹 문제였습니다. 알고리즘은 아래와 같습니다. 1. 꽃은 상하좌우 칸이 모두 확보되어 있어야 하므로 y축, x축 모두 [0, N)이 아닌 [1, N - 1) 내에 꽃을 심어야 합니다. 2. 1번 로직에 따라 [1, N - 1) 내 가능한 칸마다 꽃을 심어봅니다. 2.1 꽃을 세 개 심었을 때 result 값을 갱신해줍니다. 3. 2번 과정을 마치면 최소 비용인 r..

알고리즘/BOJ 2024.03.26

백준 14497번 주난의 난(難)

문제 링크입니다: https://www.acmicpc.net/problem/14497 14497번: 주난의 난(難) 주난이는 크게 화가 났다. 책상 서랍 안에 몰래 먹으려고 숨겨둔 초코바가 사라졌기 때문이다. 주난이는 미쳐 날뛰기 시작했다. 사실, 진짜로 뛰기 시작했다. ‘쿵... 쿵...’ 주난이는 점프의 파 www.acmicpc.net 문제의 핵심은 주난이의 파동이 장애물을 만날 때까지 상하좌우 4방향으로 퍼진다는 것입니다. 알고리즘은 아래와 같습니다. 1. BFS 알고리즘을 수행하되 1.1 장애물이 없을 경우 현재 queue에 넣고 1.2 장애물을 만날 경우 해당 좌표는 다음 queue에 넣습니다. 1.3 현재 queue에 대한 탐색이 완료될 경우 현재 queue를 다음 queue로 세팅하고 점프 ..

알고리즘/BOJ 2024.03.23

백준 2870번 수학숙제

문제 링크입니다: https://www.acmicpc.net/problem/2870 2870번: 수학숙제 종이에서 찾은 숫자의 개수를 M이라고 하면, 출력은 M줄로 이루어져야 한다. 각 줄에는 종이에서 찾은 숫자를 하나씩 출력해야 한다. 이때, 비내림차순으로 출력해야 한다. 비내림차순은 내림차 www.acmicpc.net 간단한 문자열 처리 문제였습니다. 주의할 점은 숫자가 최대 100자리 즉, long long 자료형으로도 커버 안 되는 숫자가 주어질 수 있기 때문에 문자열을 통해 숫자 비교하는 정렬 메서드를 직접 구현해야 합니다. 개발환경:Visual Studio 2022 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2024.03.13

백준 2910번 빈도 정렬

문제 링크입니다: https://www.acmicpc.net/problem/2910 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net map의 특성을 이용하여 visited 배열과 같이 사용하면 메모리 초과가 발생하지 않고 쉽게 풀 수 있는 문제였습니다. 개발환경:Visual Studio 2022 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2024.03.13

[Programmers] 양과 늑대

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 비트마스킹과 백트래킹을 통해 풀 수 있는 문제였습니다. 사실 모든 가능한 상태에 대해 시뮬레이션을 진행하고 이 중 양 개수가 가장 높은 케이스를 찾는 방법이라 별도로 설명할 알고리즘은 없고 비트마스킹을 어떻게 활용할지 간단하게 설명하겠습니다. 노드 개수가 최대치인 17개라고 가정했을 때 처음 상태는 루트 노드만 방문한 상태인 00,000,000,000,000,001 루트 노드와 ..

[Programmers] 산 모양 타일링

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 테크 홈페이지 해설집을 참고하여 푼 문제였습니다 아래 방향을 향하는 삼각형을 기준을 삼아 점화식을 세우는 DP 문제였습니다. 알고리즘은 아래와 같습니다. 1. 아래 방향을 향하는 삼각형을 채우는 방법은 아래와 같이 네 가지입니다. 위아래 모두 채우는 마름모 (1번) 일반적인 정삼각형 (2번) 자신과 왼쪽 삼각형을 채우는 마름모 (3번) 자신과 오른쪽 삼각형을 채우는 마름..

[Programmers] n + 1 카드게임

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/258707 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제의 핵심은 두 개의 카드를 뽑았을 때 합이 N + 1인 경우는 각각의 카드에 대해서 하나뿐이라는 것입니다. ex) N = 10일 때 [1, 9], [2, 8], [3, 7], ... 알고리즘은 아래와 같습니다. 1. 처음에 뽑은 카드는 모두 hands에 저장하고 라운드를 진행하며 뽑은 카드들은 모두 draw에 저장합니다. 2. 라운드마다 draw에 신규 카드를 순차적으로..

[Programmers] 도넛과 막대 그래프

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr edges, a, b 모두 최대 100만이기 때문에 브루트포스로 풀기보다는 규칙을 찾아 풀어야 하는 문제였습니다. 규칙은 아래와 같습니다. 1. 모든 그래프는 생성한 정점으로부터 파생됩니다. 문제 조건에서 도넛 모양 그래프, 막대 모양 그래프, 8자 모양 그래프의 수의 합은 2이상입니다 라고 명시했으므로 해당 정점을 향하는 간선은 0개, 해당 정점으로부터 다른 정점으로 나가는 ..

[Programmers] 가장 많이 받은 선물

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr map을 이용하여 이름과 인덱스를 적절히 매핑하면 쉽게 풀 수 있는 문제였습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~