알고리즘/BOJ 1235

백준 2665번 미로만들기

문제 링크입니다: https://www.acmicpc.net/problem/2665 2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1≤n≤50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net 검은 방을 흰방으로 바꾼 횟수가 적을 수록 우선순위가 높은 우선순위 큐 자료구조를 활용하면 쉽게 풀 수 있는 문제였습니다. 일반적인 BFS 문제처럼 풀되 앞서 언급한 우선순위 큐로 BFS를 진행하시면 됩니다. 개발환경:Visual Studio 2019 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2020.06.03

백준 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

백준 17219번 비밀번호 찾기

문제 링크입니다: https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번�� www.acmicpc.net 문제를 보자마자 해쉬맵 자료구조로 간단히 풀 수 있다는 것을 직감할 수 있었던 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2020.05.31

백준 17244번 아맞다우산

문제 링크입니다: https://www.acmicpc.net/problem/17244 17244번: 아맞다우산 경재씨는 저녁 약속을 가기 전 챙기지 않은 물건들이 있는 지 확인하고 있다. 필요한 물건은 전부 챙긴 것 같았고 외출 후 돌아오는 길에 경재씨는 외쳤다. "아 맞다 우산!!!" 경재 씨는 매번 외출 www.acmicpc.net 비트마스킹을 통해 아이템을 주웠는지 판별해야하는 흥미로운 BFS 문제였습니다. 물건 'X' 마다 각각 고유 인덱스를 부여하여 비트 연산을 통해 주웠는지를 판별하는 것이 핵심이였습니다. 물건은 최대 5개이기 때문에 인덱스는 최대 4이고 0 ~ 4 까지 모두 표시하기 위해서는 크기가 2^5 즉, 32인 배열이 필요합니다. 물건을 줍는 과정에서 같은 칸을 밟을 수 있기 때문에 ..

알고리즘/BOJ 2020.05.28

백준 17837번 새로운 게임 2

문제 링크입니다: https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하� www.acmicpc.net 저번 문제와 마찬가지로 문제에 주어진대로 그대로 코드를 작성하면 되는 문제였습니다. 주어진 조건 1 ~ 4번 중에 1, 2번 그리고 3, 4번이 각각 유사한 성격을 지녔기 때문에 묶어서 처리했습니다. 범위를 벗어나는 부분과 파란색 칸은 완전 똑같기 때문에 바로 예외처리를 해줬고 하얀색 칸과 빨간색 칸 같은 경우 뒤집는 파트를 제외하면 동일했기 때문에 뒤집는 파트만 조건문을 ..

알고리즘/BOJ 2020.05.27

백준 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

백준 16639번 괄호 추가하기 3

문제 링크입니다: https://www.acmicpc.net/problem/16639 16639번: 괄호 추가하기 3 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 곱하기의 연산자 우선순위가 더하기와 빼기보다 높기 때문에, 곱하기를 먼저 계� www.acmicpc.net 기존 괄호 추가하기 2(https://jaimemin.tistory.com/1455)와 유사해 보이지만 전혀 다른 문제였습니다. 중첩 괄호가 가능하기 때문에 문제에서 언급한 아래의 조건을 무시할 수 있기 때문입니다. 1. 연산자 간 우선순위가 다르다 2. 괄호 내 여러 개의 연산자가 들어 있어도 된다. 이유는 즉슨 괄호를 원하는 순서대로 묶어주면 되기 때문입니다..

알고리즘/BOJ 2020.05.26

백준 1408번 24

문제 링크입니다: https://www.acmicpc.net/problem/1408 1408번: 24 도현이는 Counter Terror Unit (CTU)에서 일하는 특수요원이다. 도현이는 모든 사건을 정확하게 24시간이 되는 순간 해결하는 것으로 유명하다. 도현이는 1시간 만에 범인을 잡을 수 있어도 잡지 않는� www.acmicpc.net 간단한 문자열 처리 문제였습니다. 쉬운 코딩테스트에는 가끔 시간 계산 문제가 나오기 때문에 익숙해지는 것이 좋습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2020.05.26

백준 16638번 괄호 추가하기 2

문제 링크입니다: https://www.acmicpc.net/problem/16638 16638번: 괄호 추가하기 2 첫째 줄에 수식의 길이 N(1 ≤ N ≤ 19)가 주어진다. 둘째 줄에는 수식이 주어진다. 수식에 포함된 정수는 모두 0보다 크거나 같고, 9보다 작거나 같다. 문자열은 정수로 시작하고, 연산자와 정수가 www.acmicpc.net 백준 16637번 괄호 추가하기(https://jaimemin.tistory.com/1454) 와는 다르게 연산자 우선순위가 다른 문제였습니다. 하지만 여전히 중첩괄호는 허용하지 않다보니 수월하게 풀 수 있는 문제였습니다. 아이디어는 자료구조 시간에 배운 후위연산식 만드는 과정과 계산하는 방법에서 얻었으며 이에 대한 내용은 아래 링크를 참고하시면 됩니다! ht..

알고리즘/BOJ 2020.05.24