728x90
반응형
using System;
public class Solution
{
public int solution(int n, int m, int[] section) // n 은 벽의 미터, m은 롤러의 길이
{
int finish = 0; // 다 칠한 벽의 갯수
int answer = 0; // 벽에 롤러질한 횟수
int[] sortSection = new int[section.Length]; // 정렬할 새로운 배열 하나 생성
Array.Copy(section, sortSection, section.Length); // 배열값 복사
Array.Sort(sortSection); // 오름차순으로 배열 정렬
if (m <= n && sortSection.Length <= n) // 벽의 길이는 무조건 롤러의 길이보다 크거나 같아야 하고
// && 칠할 구역은 벽의 총 길이보다 짧거나 같아야함
{
for (int i = 0; i < sortSection.Length; i++) // 칠할벽의 길이 만큼 for문 돌리기
{
if (finish <= sortSection[i]) // 칠한 벽이 칠할 벽의 길이보다 작으면 반복하도록 조건 설정
{
finish = sortSection[i]; // 칠한 벽은 section의 첫 인덱스 값 부터
finish = m + finish; // 롤러의 길이 만큼 이동
answer++; // 한번 칠함
}
}
return answer; // 반복이 끝나면 몇번 나왔나 확인
}
else
{
return 0; // 조건에 해당하지 않으면 0을 반환하고 종료
}
}
}
728x90
반응형
'코딩테스트' 카테고리의 다른 글
C# [프로그래머스] Lv.1 숫자 짝꿍 (0) | 2024.02.05 |
---|---|
C# [프로그래머스] Lv.1 과일 장수 (1) | 2023.12.28 |
C# [프로그래머스] Lv.1 카드 뭉치 (0) | 2023.12.26 |
C# [프로그래머스] Lv.1 개인정보 수집 유효기간 (1) | 2023.12.26 |
[프로그래머스] Lv.0 문자열 반복 출력 하기 (0) | 2023.11.08 |