본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 9063 : 대지 https://www.acmicpc.net/problem/9063 9063번: 대지 첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다. www.acmicpc.net 간단한 대소비교 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 점 개수 n, 각 좌표의 최대 최소를 저장할 변수들을 선언 후 입력해줍니다. 📔 풀이과정 for loop를 수행하며 n개의 점을 입력해줍니다. 이 때마다 각 좌표의 최소, 최대를 저장해줍니다. 직사각형의 넓이 = (x좌표의 최대 - 최소) * (y좌표의 최대 - 최소) 가 됩니다. 📔 정답출력 직사각형의 넓이를 출력해줍..
(C++) - 백준(BOJ) 9094 : 수학적 호기심 https://www.acmicpc.net/problem/9094 9094번: 수학적 호기심 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, n과 m이 주어진다. 두 수는 0보다 크고, 100보다 작거나 같다. www.acmicpc.net brute force 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n, m, t, ans를 선언 후 t만큼 n, m을 입력해주며 그 때마다 ans를 0으로 초기화해줍니다. 📔 풀이과정 1. (a*b)가 0이라면 division by zero이므로 나눌 수 없습니다.2. for문을 수행하면서 해당 공식에 만족하는 a, b가 있다면 ans에 1을 더해줍니다. 📔 정답출력 ans를 출력해줍니다. 📕 Code #include u..
(C++) - 백준(BOJ) 1380 : 귀걸이 https://www.acmicpc.net/problem/1380 1380번: 귀걸이 입력은 번호를 가진 시나리오들로 구성됩니다. 시나리오 번호는 1부터 순서대로 증가하고, 각 시나리오는 아래의 내용을 포함합니다. 한 줄에 귀걸이를 압수당한 여학생의 수, n (1 ≤ n ≤ 100)이 www.acmicpc.net 자료구조 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 t를 선언 후 for loop를 수행하며 n이 0일 때까지 입력받습니다. 이후 이름 list를 저장할 vector name을 선언, 서순의 오류가 없도록 unordered_map m, string s를 선언해줍니다. 📔 풀이과정 귀걸이가 어처피 쌍으로 주어지므로 A, B여부는 중요하지 않습니다. m에 학생이름의 번호를 key, value를 ..
(C++) - 백준(BOJ) 1251 : 단어 나누기 https://www.acmicpc.net/problem/1251 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net 모든 단어를 검사하는 brute force로 푼 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 단어 word, 규칙대로 만든 단어를 저장할 map m, 나눈 부분의 index를 저장할 vector 변수 comb를 선언 후 word에 단어를 입력받습니다. 📔 풀이과정 1. 단어의 길이는 최대 50이므로 그 중 나누는 구역은 3부분입니다. 50C2만에 나누는 index를 구할 수 있습니다. 2. nex..
(C++) - 백준(BOJ) 8716 : Pole https://www.acmicpc.net/problem/8716 8716번: Pole W pierwszym wierszu wejścia znajdują się 4 liczby całkowite: x1, y1, x2, y2, oznaczające odpowiednio współrzędną x - ową i y - ową lewego górnego rogu i współrzędną x - ową i y - ową prawego dolnego rogu pierwszego prostokąta. W drug www.acmicpc.net 여러가지를 고려해야하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 좌표들을 선언해 입력을 받습니다. 📔 풀이과정 4곳의 직사각형 구석 부분이 겹칠 수 있습니다. 이를 고려해 ..
(C++) - 백준(BOJ) 1408 : 24 https://www.acmicpc.net/problem/1408 1408번: 24 도현이는 Counter Terror Unit (CTU)에서 일하는 특수요원이다. 도현이는 모든 사건을 정확하게 24시간이 되는 순간 해결하는 것으로 유명하다. 도현이는 1시간 만에 범인을 잡을 수 있어도 잡지 않는 www.acmicpc.net 구현문제였습니다. 📕 풀이방법 📔 입력 및 초기화 형식에 맞게 시작시간과 끝 시간을 입력받기 위한 배열 s, e를 선언해 시간, 분, 초를 입력받습니다. 📔 풀이과정 남은 시간을 string형태로 반환하는 getTimeLeft함수를 수행합니다. 시작시간과 끝 시간을 초로 환산해 저장합니다. 이 후 시간, 분, 초로 환산해 출력 형식에 맞게 지역변수 timeLeft를 선언 해 저장합니..
(C++) - 백준(BOJ) 2422 : 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 https://www.acmicpc.net/problem/2422 2422번: 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 첫째 줄에 정수 N과 M이 주어진다. N은 아이스크림 종류의 수이고, M은 섞어먹으면 안 되는 조합의 개수이다. 아래 M개의 줄에는 섞어먹으면 안 되는 조합의 번호가 주어진다. 같은 조합은 두 번 www.acmicpc.net 모든 경우의 수를 구하는 brute force문제였습니다. 📕 풀이방법 📔 입력 및 초기화 1. n, m, cnt, 불가한 아이스크림 조합을 그래프 형태로 저장할 vector graph, 뽑은 아이스크림 조합을 저장할 combCk를 선언 후 n, m에 입력받습니다. 2. m만큼 불가한 조합을 a, b를 입력받았을 때 인접리스트 형태로 그래프를 graph에 저장..
(C++) - 백준(BOJ) 8932 : 7종 경기 https://www.acmicpc.net/problem/8932 8932번: 7종 경기 민혁이는 한국에서 열리는 7종 경기 대회에 참가한다. 7종 경기는 육상의 필드 경기와 트랙 경기 7 종목으로 이루어져 있다. (100미터 허들, 높이뛰기, 포환던지기, 200미터 달리기, 멀리뛰기, 창던 www.acmicpc.net 문제 그대로 구현하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 테스트 케이스 수 t, 점수 score를 선언 후 t에 입력을 받습니다. 이후 while loop를 수행하며 7경기에 대한 정보를 배열 p를 선언해 입력받습니다. 📔 풀이과정 1. 7종목 중 트랙 경기는 100미터 허들, 200미터 달리기, 800미터 달리기가 있습니다. 2. 필드 경기는 높이뛰기, 포환던지기, 멀리뛰기,..