브루트포스 29

[Programmers] 메뉴 리뉴얼

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 완전 탐색법을 이용해 푸는 문제였습니다. 알고리즘은 아래와 같습니다. 1. 각 주문마다 길이가 2 이상인 모든 조합을 만들어봅니다. 2. 해당 조합이 몇 번 등장했는지 map 자료구조를 통해 표시합니다. 2.1 2번에서 구한 조합 크기 내 가장 많이 시킨 조합을 구하는 것이 문제의 의도이므로 max 함수를 통해 같은 조합 크기 중 조합이 등장한 ..

[Programmers 위클리 챌린지 9주차] 전력망을 둘로 나누기

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 9주차 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 정점이 최대 100인 트리이므로 간선의 개수는 최대 99개입니다. 따라서, 각각의 간선을 제거해보는 완전 탐색법으로 충분히 풀 수 있는 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers 코딩테스트 고득점 Kit] 기능개발

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 간단한 브루트포스 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers 코딩테스트 고득점 Kit] 카펫

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 아래의 공식만 이해하면 쉽게 풀 수 있는 문제였습니다. 가로 * 세로 = (갈색 + 노란색) (가로 - 2) * (세로 - 2) = 노란색 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

백준 19235번 모노미노도미노

문제 링크입니다: https://www.acmicpc.net/problem/19235 언제나처럼 삼성 코딩테스트는 수준 높은 독해력을 요구하는 시뮬레이션 문제를 출제하는 것 같습니다. 저는 초록색 칸과 파란색 칸을 각각 이차원 배열 green[6][4], blue[4][6]으로 선언하여 문제를 풀었습니다. 알고리즘은 아래와 같습니다. 1. 블록 타입과 좌표를 입력 받고 green과 blue 배열에 블록이 쌓인 칸을 표시해줍니다. 1.1 이 때, 타입마다 다르게 표시해줘야 합니다. ex) t=2 일 경우 배열에도 2라고 표시 2. 초록색 칸과 파란색 칸에 대해 시뮬레이션을 돌립니다. 2.1 초록색 칸에서 행, 파란색 칸에서 열이 가득 채워질 경우 블록을 만나거나 경계선에 맞닿을 때까지 옮겨주는 작업을 진행..

알고리즘/BOJ 2020.06.12

백준 1941번 소문난 칠공주

문제 링크입니다: https://www.acmicpc.net/problem/1941 1941번: 소문난 칠공주 총 25명의 여학생들로 이루어진 여학생반은 5*5의 정사각형 격자 형태로 자리가 배치되었고, 얼마 지나지 않아 이다솜과 임도연이라는 두 학생이 두각을 나타내며 다른 학생들을 휘어잡기 시작�� www.acmicpc.net T 자 모양 같이 단순 DFS, BFS 알고리즘을 통해서는 도출해낼 수 없는 경우의 수가 있기 때문에 모든 경우의 수를 도출해낸 후 조건을 충족하는지 확인해야하는 문제였습니다. 5 * 5의 정사각형 격자 형태로 자리가 배치되어있고 여기서 7명을 뽑아야하므로 25C7 가지 즉, 480,700 가지의 경우의 수를 고려해보면 된다는 것을 알 수 있습니다. 따라서, 모든 경우의 수를 고..

알고리즘/BOJ 2020.06.04

백준 3987번 보이저 1호

문제 링크입니다: https://www.acmicpc.net/problem/3987 3987번: 보이저 1호 문제 보이저 1호는 1977년에 발사된 NASA의 태양계 무인 탐사선이다. 현재 보이저 1호는 태양권덮개 (헬리오시스)에 있다. 보이저 1호와 같이 오랜 기간동안 활동하는 탐사선은 경로를 항성계를 만� www.acmicpc.net 행성에 의해 반사되는 방향을 미리 매핑해 놓으면 풀기 수월한 문제였습니다. visited 배열을 이차원이 아닌 방향까지 고려하여 삼차원 배열로 선언하는 것이 핵심이였습니다! 개발환경:Visual Studio 2019 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2020.06.03

백준 18808번 스티커 붙이기

문제 링크입니다: https://www.acmicpc.net/problem/18808 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연� www.acmicpc.net 90도 회전을 시켰을 경우 R과 C 값이 바뀌는 부분만 적절히 처리한다면 쉽게 해결할 수 있는 문제였습니다. 저 같은 경우에는 cnt의 값에 따라 모듈러 연산을 통해 R과 C 값을 스왑하는 식으로 해결했습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2020.06.02

백준 17822번 원판 돌리기

문제 링크입니다: https://www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 여타 다른 삼성 코딩 테스트처럼 문제를 잘 읽고 그대로 구현하면 되는 문제였습니다. 원판을 시계방향 혹은 반시계방향으로 돌리기 때문에 저는 원판을 간단하게 구현하기 위해 덱 (deque)으로 구현했습니다. (해당 내용은 turnRullet 함수를 참고해주세요) 주의할 점은 덱으로 구현했기 때문에 인접한 요소를 찾을 때 덱의 front()와 덱의 back()이 인접..

알고리즘/BOJ 2020.05.26

백준 17779번 게리맨더링 2

문제 링크입니다: https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름�� www.acmicpc.net 생각보다 문제를 이해하기 어려웠던 문제였습니다. 대체로 삼성 문제는 실제 구현을 하는 과정보다 문제를 이해하는 과정이 더 어렵게 느껴지는 것 같습니다. (책 읽는 것을 습관화해야하는 이유) 아무튼, 문제를 이해하고 나면 별로 어렵지 않은 문제입니다. 문제를 읽다보면 선거구를 나누는 방법이 주어집니다. 여기서 저희가 주목해야할 파트는 2번과 4번입니다. 2번과 4번에 주어진 구간을 ..

알고리즘/BOJ 2020.04.30