본문 바로가기

알고리즘 문제풀이202

[백준 1012] 알고리즘 83일차 : 유기농 배추 www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net C++ 유기농 배추 연휴 전날 아침부터 배추에 지렁이 심음 2차원 배열에 배추 있는 위치가 1로 표시돼있고 상하좌우로 연결된 배추들끼리 인접해 있는 것이라고 할때 인접한 배추들의 그룹 수를 구하는 문제 바로 전날 푼 2667 문제에서 빌리지수만 구하는 문제 (집 개수 필요없음) 그래서 난이도 -1 인듯 접근방법 2667문제 거의 비슷하게 풀었다. visit배열, map배열 써주고 다만 테스트케이스가 여러개라 반복문안에서 매.. 2021. 2. 10.
[C++] 시간초과 해결방법 백준에서 시간초과 나는경우 로직 문제(시간 복잡도)인 경우가 많지만 입출력 관련 코드 때문에 시간초과가 나는 경우가 생각보다 많은 것 같다. (나포함) 그래서 일단 시간초과 나면 아래의 코드를 main함수안에 추가하고 제출한다. 1. endl 대신 "\n" 백준 처음 풀때는 쉬운문제를 풀어서 endl써도 상관없는 문제가 많았지만 solve.ac 난이도로 실버대에만 들어와도 endl쓰면 시간초과가 나는 경우가 많은 것 같다. 종종 백준 문제 질문게시판에서 시간초과 난 글 보면 endl을 "\n"로만 고치면 통과되는 글이 종종 보인다. 줄바꿈은 "\n" 필수입니다.. 2. ios::sync_with_stdio(false); main 함수안에 맨위에 이 코드를 써주면 c 표준 stream과 C++ 표준 str.. 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.
[프로그래머스] 알고리즘 80일차 : 다트게임 programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr C++ 시뮬레이션? 2018 카카오 블라인드 코테 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재.. 2021. 2. 5.
[프로그래머스] 알고리즘 79일차 : 예산 programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr C++ 그리디 알고리즘 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 .. 2021. 2. 4.
[프로그래머스] 알고리즘 78일차 : 비밀지도 programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr C++ 2018 카카오 블라인드 리크루팅 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 공백(" ) 또는벽(#") 두 .. 2021. 2. 3.
[프로그래머스] 알고리즘 77일차 : 실패율 programmers.co.kr/learn/courses/30/lessons/42889# 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr C++ 카카오 2019 블라인드 리크루트 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대.. 2021. 2. 2.
[프로그래머스] 알고리즘 76일차 : 키패드 누르기 programmers.co.kr/learn/courses/30/lessons/67256# 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr C++ 2020 카카오 인턴십 위 사진 같은 키패드를 어느 손으로 누를건지를 차례로 출력하는 문제이다. 1,4,7이랑 3,6,9는 누르는 손이 정해져있는데 문제는 가운데이다. 왼손과 오른손 중에 현재 상태에서 가장 가까운 손으로 누른다. 거리가 같으면 오른손잡이면 .. 2021. 2. 1.