[프로그래머스] 파괴되지 않은 건물
·
PS/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입력board: [[Int]] = r행 c열의 내구도1 ≤ board의 행의 길이 (= N) ≤ 1,0001 ≤ board의 열의 길이 (= M) ≤ 1,0001 ≤ board의 원소 (각 건물의 내구도) ≤ 1,000skill =[type, r1, c1, r2, c2, degree]1 ≤ skill의 행의 길이 ≤ 250,000skill의 열의 길이 = 6type은 1 혹은 2입니다.type이 1일 경우는 적의 공격을 의미합니다. 건물의 내구도를 낮춥니다.type이 2일 경우는 아군의 회복 스킬을 의미합니다..
[프로그래머스] 양과 늑대
·
PS/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입력info:[Int] = i번째 자리에 0이면 양, 1이면 늑대를 나타내는 정보 배열2 ≤ info의 길이 ≤ 17_ edges:[[Int]] = [[부모 노드, 자식노드],...] 로 간선에 연결된 부모자식 노드의 정보를 담고 있다. 2 ≤ info의 길이 ≤ 17출력result = 담을 수 있는 최대 양의 마리 수양 ≤ 늑대 마리 수가되면 지금까지 담은 양은 모두 잡아 먹힌다.해석1. 제약 조건은 간단하게 양의 수가 많을 때만 다음 늑대로 갈 수 있다.2. 또한 들어오는 순서에 따라 이전에 방문할 수 없..
[프로그래머스] 광고 삽입
·
PS/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입력모든 시간 형태 = "HH:MM:SS"play_time: String = 종료 시간 (총 재생 시간)adv_time: String = 광고 시간logs: [String] = [startTime-endTime, ....] // 각 유저 별 시청 구간 (1 결과result: String = "HH:MM:SS"가장 많은 유저가 보는 시간 중 광고 삽입될 시간단 조건을 만족하는 구간이 여러 군대면 시작시간이 가장 빠른 시간으로 한다.해석이 문제는 솔직히 카데고리 분류를 끝내하지 못했고 힌트를 조금 보면서 풀었다...
[프로그래머스] 합승 택시 요금
·
PS/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입력n:Int = 지점 개수 1 d지점 편도 택시 비용 결과ans = a와 b가 s에서 출발해서 각자 도착지점까지 갔을 때 최소 택시 비용해석지점이 많지않고 몇개의 지점을 거치더라도 최소 비용으로 가기만하면 되기때문에플로이드 와샬 알고리즘으로 접근해보자. 플로이드 와샬의 단계는 다음과 같다. 1. adj 인접배열 초기화자기 자신에게는 항상 최소이므로 0나머지는 INF로 초기화한다.2. 모든 지점간 최소비용으로 adj 배열을 갱신한다. 이 때 dp를 이용하며 점화식은 다음과 같다.adj[i][j] =  i에서..
[프로그래머스] 도넛과 막대 그래프
·
PS/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입력edges:[[Int]] = [[출발정점 번호, 도착 정점번호]]결과answer [Int] = [중앙정점, 도넛 그래프 개수, 막대 그래프 개수, 8자 그래프 개수]해석각 그래프의 특징을 살펴보자. 그래프 특징1. 막대 그래프: 그래프 내에 나가는 간선이 없는 정점이 있다.2. 8자 그래프: 그래프 내에 들어오는 간선과 나가는 간선이 모두 2개 이상인 정점이 있다.3. 도넛 그래프: 판단할 큰 특징이 없어 전체 그래프에서 막대그래프와 8자 그래프를 뺀 나머지로 개수를 세준다. (도넛그래프 수 = 전체..
[프로그래머스] 택배 배달과 수거하기
·
PS/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입력cap:Int = 한번에 들고있을 수 있는 상자 용량n:Int = 집 개수 deliveries:[Int]: (index+1) 번째 집에 배달해야하는 상자 개수pickups:[Int] : (index+1) 번째 집에 수거해야하는 상자 개수출력dist: Int64 = 모든 작업을 완료했을 때 최소 이동거리해석최소 이동거리이므로 오른쪽에 있는 집쪽을 먼저 해결해야 거리가 줄어든다. 1. 만약 배달 또는 수거해야하는 상자가 하나라도 있으면 무조건 방문해야함2. 한번 왕복할 때 거리 = (방문한 집의 가장 오른쪽 ..