본문 바로가기

백준56

[백준 1012] 알고리즘 83일차 : 유기농 배추 www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net C++ 유기농 배추 연휴 전날 아침부터 배추에 지렁이 심음 2차원 배열에 배추 있는 위치가 1로 표시돼있고 상하좌우로 연결된 배추들끼리 인접해 있는 것이라고 할때 인접한 배추들의 그룹 수를 구하는 문제 바로 전날 푼 2667 문제에서 빌리지수만 구하는 문제 (집 개수 필요없음) 그래서 난이도 -1 인듯 접근방법 2667문제 거의 비슷하게 풀었다. visit배열, map배열 써주고 다만 테스트케이스가 여러개라 반복문안에서 매.. 2021. 2. 10.
[백준 2667] 알고리즘 82일차 : 단지번호붙이기 www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net C++ DFS&BFS 이차원 배열을 그래프로 표현해서 DFS&BFS로 푸는 문제  접근방법 처음엔 이걸 인접 그래프로 만들어서 풀어야 하나 했지만 그냥 지도랑 방문여부만 배열로 만들어서 풀어도 되는 문제였다. 지도를 한칸씩 돌면서 집이 있고 & 방문하지 않은 집이 나오면 DFS에 들어간다. DFS안에서는 우선 현위치를 방문하고/cnt를 1증가하고/상하좌우를 돌면서 집이 있으면 재귀로 DFS를 들어간다/ > n;.. 2021. 2. 9.
[백준 2606] 알고리즘 3^4일차 : 바이러스 www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net C++ DFS&BFS 이게 얼마만의 백준인가 😂 약간 그리웠음. 프로그래머스 푼다고 떠난지 12일만에 복귀 백준의 이 러프함에 길들여졌다.. (사담 그만) 단계별 풀이 DFS&BFS문제 중에 두번째 문제이다. 하나의 그래프를 전체 탐색하면 되는 문제 경로를 출력할 필요 없이 첫 노드를 제외한 카운트만 세어주면 된다. 접근방법 DFS or BFS 중에 로직이 더 간단한 DFS로 풀었고 (큐 쓰기 싫어서 그랬음 맞음) .. 2021. 2. 8.
[백준 10867] 알고리즘 68일차 : 중복 빼고 정렬하기 www.acmicpc.net/problem/10867 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net C++ 정렬 저번에 중복빼고 정렬이 아닌 문제를 중복 빼고 처리해버려서 오늘은 그 코드를 그대로 썼습니다..ㅎ sort, unique, erase를 사용했고 자세한 함수 사용 방법은 sio2whocode.tistory.com/63 이곳에 정리되어 있습니다 ! 소스코드 #include #include #include using namespace std; vector arr = vector(); int main(){ int n; cin >> n.. 2021. 1. 19.
[백준 11931] 알고리즘 67일차 : 수 정렬하기4 www.acmicpc.net/problem/11931 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 정렬 C++ 아 무엇. 입력에 중복 없는거 지금봄. 일단 내림차순 정렬 문제고 변명시작. 오늘 정말 상당한 투두를 소화해냈거든요. 그래서 사실 문제풀이는 3/4쯤 포기 했었어요. 하지만 어쩌다보니 시간이 돼서 풀었어요. 하지만 그게 마음대로 되나요 문제 한 4개정도 간보다가 문제 랭크 실버 이상 풀어야해서 실버 5정도만 골라보다가 진짜 안되겠다 싶어서 정렬을 풀기로 했습니다.. 양아치같은 문제 .. 2021. 1. 18.
[백준 2776] 알고리즘 66일차 : 암기왕 www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net C++ 이분탐색 두개의 정수배열이 있고 하나의 배열에서 다른 하나의 배열의 수를 찾는 간단한 문제다. 이번엔 최대값 혹은 최솟값구하는 문제도 아니고 그냥 이분탐색이다. 오히려 이런게 오랜만.. 처음에 시간초과 걸렸었는데 ios::sync_with_stdio(false); cin.tie(0); 쓰고 통과 소스코드 #include #include using namespace std; int T,N,M; int note1.. 2021. 1. 15.
[백준 2343] 알고리즘 65일차 : 기타 레슨 www.acmicpc.net/problem/2343 2343번: 기타 레슨 강토는 자신의 기타 레슨 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 레슨이 들어가는데, 블루레이를 녹화할 때, 레슨의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net 이분탐색 C++ 음 메모리 파티션을 나눈다고 생각하면 이해가 쉬울 것 같다. N개의 레슨 영상의 시간이 주어지고 이걸 용량이 동일한 M개의 usb에 담아야할때 usb용량의 최소크기를 구하는 것이다. (내맘대로 문제 변경) 접근방법 우선 이분탐색이기 때문에 범위만 산정되고 기준을 정하는 함수만 설계하면 끝난다. 범위는 레슨 길이 중 최댓값 ~ 모든 레슨 길이의 합이다. *처음 제출할때 이분 탐색 start 값을 1로 설.. 2021. 1. 14.
[백준 1072] 알고리즘 64일차 : 게임 www.acmicpc.net/problem/1072 1072번: 게임 각 줄에 X와 Y가 주어진다. X는 1,000,000,000보다 작거나 같은 자연수이고, Y는 0보다 크거나 같고, X보다 작거나 같은 자연수이다. www.acmicpc.net C++ 이분탐색 (12분전) 앞으로 하는 게임은 모두 이긴다는 가정에서 최소 몇판을 더해야 승률이 변하는지 구하는 문제 99%일때와 100%일때는 아무리 게임을 더해도 승률이 절대 변하지 않는다 (-1출력) X의 최댓값이 1000000000이라 추가로 더 하는 게임 횟수의 최댓값도 1000000000이다. 이분탐색의 범위는 1,1000000000 Z(승률) 구하는 식을 그대로 쓰면 50 29 일때 값이 틀리게 나온다 그래서 Y*100/X로 구해야하는데 Y/X를 .. 2021. 1. 13.
[백준 1789] 알고리즘 63일차 : 수들의 합 www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net C++ 이분탐색.. 16분전. 시간에 쫓기고 있습니다. 이분탐색인데 이분탐색으로 안해도 풀리네요. 문제 한문장 대로 서로다른 N개의 자연수의 합이 S가 될때 N의 최댓값을 구하는 문제 접근방법 합이 S가 되는 수들의 개수가 최대가 되려면 적은 수부터 연속된 수를 더하는 경우가 가장 최대가 되겠죠. 그래서 우리가 알고 있는 공식 1부터 N까지 연속된 수의 합을 구하는 공식인 N(N+1)/2 을 활용하면 됩니다. 이 N에 들어가는 수를 이분탐색으로 탐색하면 시간이 더 적게 들겠지만 1부터 차례로 대입해가면서 공식의 값이 S를 넘을때.. 2021. 1. 12.