목록분류 전체보기 (217)
Study hard

www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net [풀이] bfs를 사용하여 풀 수 있는 문제였다. 주변을 탐색할 때 왼쪽 방향부터 시계 반대방향으로 탐색하고, 청소할 수 있는 칸을 찾으면 현재 칸에서의 탐색을 중단해야 한다. 네 방향 모두 청소가 이미 되어있거나 벽인 경우는 네 방향 탐색을 마치고 for문을 빠져나왔을 때 bool flag값을 보고 판단하도록 하였다. #include #include using namespace std; struct Stat..

www.acmicpc.net/problem/20058 20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c www.acmicpc.net [풀이] 문제에 나와있는 조건을 모두 구현하면 되는 문제였다. 구현한 것 1. 2^N * 2^N 얼음판을 2^L * 2^L 크기의 격자로 나누어 시계방향으로 90도 회전 → 각 격자의 가장 바깥쪽부터 안쪽으로 순서대로 회전시켜주었다. (Turn함수) 2. 각 얼음이 있는 칸에 대하여 얼음이 있는 인접한 칸이 3개 미만인 칸 저장(checkSurround함수) ※조건에 해당하는 칸을 볼때마다 ..

www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net [풀이] 문제에 있는 조건들을 구현하면 되는 문제였다. 구현한 것 1. 토네이도 모양대로 이동하기 -while문 안에 for문 두 개로 구현하였다. 헷갈려서 Map 배열에 경로 저장하고 출력하여 확인했다. -방향은 왼쪽 → 아래쪽 → 오른쪽 → 위쪽 순서 반복 2. 모래를 비율과 a가 적혀있는 칸으로 이동시키기(방향 생각!) -비율을 p정수 배열에 저장해놓고, 왼쪽, 아래쪽, 오..

www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net [풀이] 먼저 파이어볼의 질량, 속력, 방향을 저장하는 구조체 벡터 배열(vectorball[51][51])에 파이어볼의 정보를 저장하는 것으로 시작하였다. 구현한 함수 1. 모든 파이어볼을 자신의 방향 d로 속력 s칸 이동시키는 함수(여러 파이어볼이 한 칸에 함께 있을 수 있다) 2. 2개 이상의 파이어볼이 있는 곳 조건에 맞게 처리하는 함수 ※문제를 잘못 이해해서 2개..

www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net [풀이] 문제에 있는 순서대로 구현해주면 풀 수 있는 문제였다. 먼저 구조체 배열에 컨베이어 벨트 한 칸의 정보(로봇이 있는지, 해당 칸의 내구도)를 저장하는 것으로 시작하였다. 구현한 함수들 1. 벨트를 한 칸씩 회전시키는 함수 2. 로봇을 벨트가 회전하는 방향으로 한 칸씩 이동시키는 함수(이동할 수 있는 조건 有) +1번 칸에 로봇 올리기 3. 내구도가 0인 칸의 개수가 K개 이상인지 ..

programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr [풀이] vectorstudent에 각 학생이 가지고 있는 체육복 개수를 저장하고, 체육복이 없는 학생이고 앞 또는 뒤 학생이 2개의 체육복을 가지고 있을 경우 각각 +1, -1을 해주었다. 마지막에 1개 이상의 체육복을 가진 학생 수를 세 출력하였다. #include #include using namespace std; int solution(int n, vector lost..