본문 바로가기

전체 글26

백준 7576번 - 토마토 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 문제 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마.. 2023. 2. 5.
백준 2696번 - 중앙값 구하기 2696번: 중앙값 구하기 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 수열의 크기 M(1 ≤ M ≤ 9999, M은 홀수)이 주어지고, 그 다음 줄부터 이 수열의 원소가 차례대로 주 www.acmicpc.net 문제 어떤 수열을 읽고, 홀수번째 수를 읽을 때 마다, 지금까지 입력받은 값의 중앙값을 출력하는 프로그램을 작성하시오. 예를 들어, 수열이 1, 5, 4, 3, 2 이면, 홀수번째 수는 1번째 수, 3번째 수, 5번째 수이고, 1번째 수를 읽었을 때 중앙값은 1, 3번째 수를 읽었을 때는 4, 5번째 수를 읽었을 때는 3이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스의 첫째 줄.. 2023. 2. 5.
백준 5214번 - 환승 5214번: 환승 첫째 줄에 역의 수 N과 한 하이퍼튜브가 서로 연결하는 역의 개수 K, 하이퍼튜브의 개수 M이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ K, M ≤ 1000) 다음 M개 줄에는 하이퍼튜브의 정보가 한 줄에 하나씩 주어 www.acmicpc.net 문제 아주 먼 미래에 사람들이 가장 많이 사용하는 대중교통은 하이퍼튜브이다. 하이퍼튜브 하나는 역 K개를 서로 연결한다. 1번역에서 N번역으로 가는데 방문하는 최소 역의 수는 몇 개일까? 입력 첫째 줄에 역의 수 N과 한 하이퍼튜브가 서로 연결하는 역의 개수 K, 하이퍼튜브의 개수 M이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ K, M ≤ 1000) 다음 M개 줄에는 하이퍼튜브의 정보가 한 줄에 하나씩 주어진다. 총 K개 숫자.. 2023. 2. 5.
백준 2573번 - 빙산 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 문제 지구 온난화로 인하여 북극의 빙산이 녹고 있다. 빙산을 그림 1과 같이 2차원 배열에 표시한다고 하자. 빙산의 각 부분별 높이 정보는 배열의 각 칸에 양의 정수로 저장된다. 빙산 이외의 바다에 해당되는 칸에는 0이 저장된다. 그림 1에서 빈칸은 모두 0으로 채워져 있다고 생각한다. 2 4 5 3 3 2 5 2 7 6 2 4 그림 1. 행의 개수가 5이고 열의 개수가 7인 2차원 배열에 저장된 빙산의 높이 정보 빙산의 높이는 바닷물에 많이 접해있는 부분.. 2023. 2. 3.
백준 2146번 - 다리 만들기 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net 문제 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다는 생각을 하게 되었다. 그래서 그는, 생색내는 식으로 한 섬과 다른 섬을 잇는 다리 하나만을 만들기로 하였고, 그 또한 다리를 가장 짧게 하여 돈을 아끼려 하였다. 이 나라는 N×N크기의 이차원 평면상에 존재한다. 이 나라는 여러 섬으로 이루어져 있으며, 섬이란 동서남북으로 육.. 2023. 2. 3.
[자료구조] 2. 스택(stack), 큐(queue) 1. 스택 데이터를일시적으로 저장하기 위한 자료구조 후입선출(LIFO, Last In First Out) push: 데이터를 넣음 pop: 데이터를 꺼냄 top, bottom 함수 호출, 실행 시 스택 사용 스택 만들기 공부한 책은 C언어 기반이라 구조체로 구현했지만 우린 C++에서 클래스를 배웠으므로 C++로 다시 만들어보았다 #include using namespace std; class stack { private: int max;//스택 용량 int ptr;//스택 데이터의 개수 int* stk;//스택 데이터를 넣을 배열(동적할당) public: stack(int max) : ptr(0), max(max) {//초기화 stk = new int[max]; } ~stack() { delete[] s.. 2023. 1. 25.
[자료구조] 1. 배열(Array) 배열의 정의 배열은 같은 자료형의 변수로 이루어진 요소가 직선모양으로 줄지어 있는 자료구조이다. int arr[5]; 위와 같이 선언하면 길이가 5인 int형 배열이라는 의미 연산자 [ ]를 이용해 배열의 요소들에 접근한다. 첫번째 요소는 arr[0], 마지막 요소는 arr[n-1]이다. 또한 배열의 요소는 일반 변수와 성질이 같다. 길이가 n인 Type형 배열의 자료형은 Type[n]으로 나타낸다. 위 배열의 자료형은 int[5]형. 배열을 초기화 할 땐 { }안에 요소들을 쉼표로 구분해주면 된다. #include int main(){ int a[5] = {1, 2, 3, 4, 5};//배열 초기화 return 0; } 배열의 요소 개수를 구할 땐 sizeof(arr)/sizeof(arr[0])을 해주.. 2023. 1. 14.
백준 2660번 - 회장뽑기 (C++) 2660번: 회장뽑기 입력의 첫째 줄에는 회원의 수가 있다. 단, 회원의 수는 50명을 넘지 않는다. 둘째 줄 이후로는 한 줄에 두 개의 회원번호가 있는데, 이것은 두 회원이 서로 친구임을 나타낸다. 회원번호는 1부터 www.acmicpc.net BFS로 푸는 방법과 플로이드-워셜 알고리즘으로 푸는 방법 두가지가 있는데 플로이드-워셜로 먼저 풀고 BFS로 한번 더 풀어봤다. 1. 플로이드-워셜 #include #include #include using namespace std; const int INF = 100; int main() { int member; int m1, m2; cin >> member; vector inti(member+1,vector(member+1,INF)); while (true.. 2023. 1. 7.
2022 회고록 수능이 끝나고 두근거리며 대학에 입학한게 엊그제 같은데 벌써 1년이 지나갔다. 열심히 살았다고 생각했지만 생각보다 아쉬움이 많이 남는 한 해였던 것 같다. 1년 동안 한 공부와 활동들에 대해 돌이켜보고 아쉬운 부분과 내년의 계획같은 내용들을 적어보려한다. 1. 2022년을 돌이켜보며 1-1. 1학기 시작 1) 학교 수업 아주 원하던 대학에 입학한 것은 아니지만 원하던 학과에 입학한 것만은 사실이다. 반수를 생각한다곤 했지만 돌이켜보면 이때도 그냥 학교생활에 적응하려고 열심히 생활한 것 같다. 결국 반수는 원래 포기하게 될 운명이었던 걸로... 1학기 시간표였다. 확실히 아직 1학년 1학기라서 그런지 전공과목은 하나도 없었다. 기초를 잘 다지기 위해 1학기에 집중한 과목은 C언어기초였고 나머지 과목은 수업.. 2022. 12. 31.