본문 바로가기

Algorithm

(55)
[BeakJoon 20057] 마법사 상어와 토네이도 안녕하세요. 이번 포스팅에서는 저번 포스팅에 이어 토네이도 문제를 풀어보도록 하겠습니다. 해당 문제는 https://www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 위 링크를 통해 확인하실 수 있습니다. 이 문제는 크게 두 가지를 구현하셔야 합니다. 1. 토네이도 방향으로 순회 2. 방향에 맞게 흩뿌리기 우선 토네이도 방향으로 순회 먼저 설명드리겠습니다. 저 같은 경우 이런 식으로 진행되는 것을 알았습니다. 따라서 재귀적으로 ..
[BeakJoon 20056] 마법사 상어와 파이어볼 안녕하세요. 이번 포스팅에서는 백준 20056 마법사 상어와 파이어볼 문제를 풀어보도록 하겠습니다. 해당 문제는 https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 위 링크에서 확인하실 수 있습니다. 삼성 문제집을 풀고 있는데... 간만에 구현의 매운맛 제대로 느끼고 있습니다. 삼성 문제에서 자주 나타나는 특징중에 하나가 인덱스 처리를 깔끔하게 하기가 어렵다는 점인데요. 문제의 제한을 보시면 s의 범위가 10..
[BeakJoon 20055] 컨베이어 벨트 위의 로봇 안녕하세요. 이번 포스팅에서는 백준 20055 컨베이어 벨트 위의 로봇 문제를 풀어보도록 하겠습니다. 해당 문제는 https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 위 링크에서 확인하실 수 있습니다. 이 문제는 대표적인 시뮬레이션 문제입니다. 근데 문제에서 말이 좀 헷갈리게 써있어서, 문제를 파악하는데 시간을 충분히 사용하신 후 코딩에 들어가시는 것을 추천드립니다. 문제를 자세히 살펴보시면 결국 container가 1~2N ..
[Programmers] 위클리 챌린지 10 교점에 별 만들기 안녕하세요. 이번 포스팅에서는 위클리 챌린지 10, 교점에 별 만들기 문제를 풀어보도록 하겠습니다. 해당 문제는 https://programmers.co.kr/learn/courses/30/lessons/87377 코딩테스트 연습 - 10주차 [[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]] ["....*....", ".........", ".........", "*.......*", ".........", ".........", ".........", ".........", "*.......*"] [[0, 1, -1], [1, 0, -1], [1, 0, 1]] ["*.*"] [[1, -1, 0], [2, -1, 0], [4, - progr..
[Programmers] 괄호 회전하기 안녕하세요. 이번 포스팅에서는 괄호 회전하기 문제를 풀어보도록 하겠습니다. 해당 문제는 https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 위 링크를 통해 확인하실 수 있습니다. c++에 rotate라는 유용한 함수가 있습니다. 배열의 값을 하나씩 뒤로 미룰 수 있는 기능을 제공합니다. 이 rotate함수를 사용하여, 배열의 첫 원소를 맨 뒤로 미뤄가면서 현재 문자열이 올바른 괄호 열인지 아닌지 판단해주었습니다. 올바른 괄호열 판단에는 stack 자료구조를 사용하였습니다. 1. '(', '{', '['의 문자열이면, stack에 push를 합니다. 2. ')', '}', ']'이면 2.1)..
[Programmers] [3차] 파일명 정렬 안녕하세요. 이번 포스팅에서는 Programmers 3차 파일명 정렬 문제를 풀어보도록 하겠습니다. 해당 문제는 https://programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 위 링크에서 확인하실 수 있습니다. 문자열 파싱&정렬 문제입니다. Struct File을 하나 정의해서, originalName, head, number, idx를 저장해주었습니다. originalName은 정답을 위해, head, numb..
[Programmers] 위클리 챌린지 9 (+ 위클리 챌린지 8) 안녕하세요. 이번 포스팅에서는 위클리 챌린지 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 위 링크에서 확인하실 수 있습니다. 위클리 챌린지 문제가 퀄리티가 좀 떨어지는 듯한 느낌을 받아서... 매주 월요일마다 안 챙겨서 풀었는데, 마침 이번 주에 네이버 코딩 테스트가 실시될 예정이어서 다시 코테 감좀 살릴 겸 풀어보았습니다. 해당 문제는 트리구조가 보장되..
[Programmers] 행렬 테두리 회전하기 안녕하세요. 이번 포스팅에서는 Programmers 행렬 테두리 회전하기 문제를 풀어보도록 하겠습니다. 해당 문제는 https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 위 링크에서 확인하실 수 있습니다. 문제의 특별한 제한은 딱히 없고, 단순 구현으로 해결하시면 됩니다. 저의 경우 1. vector v를 선언하여 시계방향으로 원소를 담아주었습니다. 2. v를 rotate 함수를 활용하여 한 칸씩..