본문 바로가기

개발52

[백준] 1012번 문제 풀이 문제 www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 풀이 배열에 값을 입력받고 반복문을 돌면서 조건이 맞으면 dfs함수를 실행한다. #include using namespace std; int N, M, C; int cnt; int arr[51][51]; bool check[51][51]; int dx[4] = {0, 1, 0, -1}; int dy[4] = {-1, 0, 1, 0}; void init() { cnt = 0; for (int i = 0; i = N) c.. 2021. 4. 14.
[백준] 2667번 문제 풀이 문제 www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 풀이 1. 1001 X 1001 크기의 배열에 입력을 받는데 입력받은 값이 1과 같다면 큐에 현재 i, j값을 쌍으로 묶어서 밀어 넣는다. 2. bfs함수를 실행한다 3. bfs함수가 끝나면 현재 배열에 0이 남았는지, 토마토가 며칠에 걸쳐서 전부 익었는지를 확인한다. #include #include #include using namespace std; int n, m; int arr[1001][1001];.. 2021. 4. 12.
[백준] 11650번 문제 풀이 오랜만에 글을 쓴다. 문제 www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 설명 N개의 좌표(x, y)가 주어졌을 때 각 좌표를 다음과 같이 정렬해서 나타내는 문제 y의 좌표가 증가하는 순으로 정렬될 때 만약 y의 크기가 같다면 x의 크기가 증가하는 순으로 정렬 풀이 답은 간단하다. 11650번 문제를 풀었다면 쉽게 풀이를 생각할 수 있는 문제이다. 1. N개의 좌표를 입력받으면서 벡터에 저장한다. 2. .. 2021. 4. 11.
[백준] 4949번 문제 풀이 www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 간략 풀이 : 1. getline함수를 이용해서 공백을 포함한 문자열을 입력받음 2. 맨 처음에 해당 문자열이 '.' 한 개의 점으로만 이루어져 있는지 검사후에 종료 3. 입력받은 문자열의 길이만큼 반복문을 돌면서 각각 괄호끼리 짝이 맞는지 검사를 하는데 이 부분이 조금 복잡할 수도 있음 4. 괄호의 짝이 맞는지 검사를 하면서 초기화 한 플래그 변수를 이용해서 출력 풀이 : 먼저 주어지는 문자열로.. 2021. 3. 14.
[백준] 1764번 문제 풀이 www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 풀이 : 1. 입력으로 주어지는 n + m번의 반복문을 돌면서 문자열을 입력 2. 문자열을 입력받으면서 벡터에 문자열들을 저장 3. 저장한 벡터를 나중에 출력할 때 사전순으로 출력하기 위해서 오름차순 형태로 정렬 4. 출력을 위한 벡터를 또 만들어서 정렬된 벡터의 크기만큼 반복문을 돌면서 듣보잡을 벡터에 추가 5. 듣보잡의 수가 이미 벡터의 크기만큼 정해졌기 때문에 그 벡터의 크기를 출력하고 이전에 저장한 출.. 2021. 3. 14.
[백준] 1181번 문제 풀이 www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 풀이 : 1. 문자열들을 입력받으면서 벡터에 저장 2. 벡터에 저장된 문자열들을 사용자 함수를 이용해서 정렬 3. 정렬된 벡터에서 중복된 문자열들을 제거 4. 최종적으로 계산된 벡터를 순서대로 출력 #include #include #include #include using namespace std; bool word_compare(const string& s1, const string& s2) { i.. 2021. 3. 13.