그리디3 [Swift][프로그래머스][그리디] 추석 트래픽 요구능력 그리디 문제풀이 임의시간부터 1초간 처리하는 요청의 최대 개수를 구해야한다. 오름차순 정렬까지 되어있기 때문에 우리가 원하는 시간에서부터 1초만 탐색하면 되니까 그리디로 풀게되었다. 1) 처리시간은 시작시간과 끝시간을 포함한다. 우리가 구해야할 것은 시작시간과 끝시간으로 정해졌다. 처음에 주어지는 시간이 끝시간이다. 시간을 비교해야 될 때는 가장 작은 단위에 맞춰서 비교하는게 가장좋다. 모두 우선 초단위로 바꾸고 더한다음 1000을 곱해서 밀리초를 만들어주고 밀리초를 더해주면 시간양식이 우선 완성된다. 끝시간을 저장하는 배열 endTime에 추가해준다. 그리고 시작시간을 구하려면 지속시간을 빼주면 된다. 하지만, 그냥 빼주면 안되고 문제에서 아래와 같이 되어있으니 1을 더해줘야한다. 2) 끝시간.. 2022. 4. 26. [Swift][프로그래머스][그리디] 체육복 요구능력 그리디 문제풀이 이 문제는 전체 학생수가 30명이하라고 했기 때문에 뭐 어떻게 풀어도 풀기만하면 시간초과는 안나온다고 생각한다. 그리고 여분을 가지고 있는 학생과 도난당한 학생들이 있는데, 여분을 가지고있는 학생들이 자기 앞뒤번호로 나눠준다는 문제이다. 이 문제에서 설명이 필요한 부분은 딱 2개인것같다.(내가 놓친 예외) 1) 우리는 입력받을 때 무조건적으로 오름차순으로 준다는 말이 없었다. 하지만 문제를 풀 때 오름차순으로 받아야 편하게 풀린다.. 그리고 보여지는 테케에서는 오름차순으로만 주기때문에 사람들이 놓치기 쉬운 예외인것같다. 그래서 lostTemp와 reserved는 각각 lost와 reserve를 정렬한것이다. 참고) (테케 18, 20번)통과 2) 문제의 조건 중 "도난당한학생은 .. 2022. 4. 20. [Swift][Greedy] 백준 5585번 (거스름돈) 요구능력 : 그리디 알고리즘 코드설명 : 그리디알고리즘은 말그대로 탐욕 알고리즘으로 현재상황에서 지금 당장 좋은것만 고르는 방법이다. 거스름돈이 적게나오려면 가장 큰 화폐단위부터 잔돈을 거슬러주면 된다. 그렇기 때문에 if문을 가장 큰 단위인 500엔부터 가장작은 단위인 1엔까지 넣어준것이다. 후기 : 그리디알고리즘이라는걸 처음 공부해서 한번 풀어보고 싶어서 풀어봤다. 이전에 풀었던것들중에 그리디가 좀 있는거같은데 그리디라는걸 몰라도 풀 수 있는 느낌? 굳이 그리디를 찾아서 풀려고 안해도될거같다. let n = Int(readLine()!)! var money = 1000 - n var count = 0 while true{ if money == 0 { break } if money >= 500 { mo.. 2021. 8. 31. 이전 1 다음