반응형

Algorithm/백준 212

[백준 알고리즘] 20365번: 블로그2 (Python)

https://www.acmicpc.net/problem/20365 20365번: 블로그2 neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한 www.acmicpc.net 소스코드 풀이 ★ 색깔이 연속되지 않았을 때, 다른 색을 칠해줘야 하기 때문에 딕셔너리에 해당 색깔의 횟수를 1 증가시켜줍니다. ★ 반복문을 돌며 해당 색과 이전 색이 같은지 다른지 확인해줍니다. ★ 위 과정이 모두 끝났을 때 딕셔너리 안에는 해당 색으로 칠해야 하는 횟수가 저장되어 있습니다. 이 때 그 값들 중 최소값에 + 1을 한 값이 답이 되는데, 먼저 최솟값을 찾는 이유는 작업 횟수의 최..

Algorithm/백준 2023.06.29

[백준 알고리즘] 16206번: 롤케이크 (Python)

https://www.acmicpc.net/problem/16206 16206번: 롤케이크 오늘은 재현이의 생일이다. 재현이는 친구 N명에게 롤케이크를 1개씩 선물로 받았다. 롤케이크의 길이는 A1, A2, ..., AN이다. 재현이는 길이가 10인 롤케이크만 먹는다. 따라서, 롤케이크를 잘라서 www.acmicpc.net 소스코드 풀이 ★ 입력받은 롤케이크 길이를 오름차순으로 정렬한 뒤, 10으로 나눈 나머지를 기준으로 또 정렬해줘야 합니다. 그 이유는 롤케이크가 10의 배수인지 아닌지에 따라 자르는 횟수가 다르기 때문입니다. ex) a = [10, 20, 24] 10의 자르는 횟수 = 0 20의 자르는 횟수 = 1 24의 자르는 횟수 = 2 따라서 최대 횟수인 m을 가지고 롤케이크를 최대로 구하기 위..

Algorithm/백준 2023.06.29

[백준 알고리즘] 20300번: 서강근육맨 (Python)

https://www.acmicpc.net/problem/20300 20300번: 서강근육맨 PT 첫째 날에 $1$과 $4$를 선택하고, 둘째 날에 $2$와 $3$을 선택하고, 마지막 날에 $5$를 선택하면 $M$은 $5$가 되며, 이때가 $M$이 최소일 때이다. www.acmicpc.net 소스코드 풀이 ★ 입력받은 요소들을 오름차순으로 정렬해줍니다. 이 때, 근손실을 최소로 하기 위해서는 근손실이 가장 적은 것과 가장 많은 것을 합해줘야 합니다 ! ★ 2개의 근손실을 합한 값을 리스트에 저장한 다음, max를 통해 최소값을 출력해줍니다 :)

Algorithm/백준 2023.06.28

[백준 알고리즘] 2853번: 배 (Python)

https://www.acmicpc.net/problem/2853 2853번: 배 해빈이는 배가 한 척이라도 올까 말까 한 작은 항구 마을에 산다. 그런데 어느 날, 마을을 방문한 적이 있는 모든 배가 한꺼번에 마을을 방문한 날이 있었다. 해빈이는 이 날을 기념해 1일로 센 www.acmicpc.net 소스코드 풀이 ★ 모든 배가 들어온 날로부터 그 다음에 들어오는 날들 사이의 간격을 기준으로 반복문을 돕니다. 주기를 기준으로 반복문을 돌면서, 그 주기에 들어온 배들이 있는 경우 리스트에서 제거해줍니다. ★ 방문한 배의 최소값을 구해줘야 하기 때문에, 주기에 들어온 배들을 전부 제거해주는 것입니다 !

Algorithm/백준 2023.06.28

[백준 알고리즘] 12018번: Yonsei TOTO (Python)

https://www.acmicpc.net/problem/12018 12018번: Yonsei TOTO 연세대학교 수강신청이 얼마 전부터 바뀌어, 마일리지 제도로 바뀌었다. 이 제도는 각각의 학생들에게 마일리지를 주어 듣고 싶은 과목에 마일리지를 과목당 1~36을 분배한다. 그리고 모두 분배 www.acmicpc.net 소스코드 풀이 ★ 주어진 마일리지를 가지고 과목을 최대로 수강하기 위해서는 과목을 수강할 수 있는 마지막 인원을 커트라인이라고 했을 때, 그 인원과 최소한으로 똑같은 마일리지를 사용해야 합니다. ★ 순서를 파악하기 위해서 과목마다 주어진 리스트를 오름차순 정렬해줍니다. 그 후, 주어진 마일리지에서 해당 과목을 듣기 위한 마일리지를 빼주는데, 만약 주어진 마일리지가 해당 과목을 듣기 위한 ..

Algorithm/백준 2023.06.27

[백준 알고리즘] 20115번: 에너지 드링크 (Python)

https://www.acmicpc.net/problem/20115 20115번: 에너지 드링크 페인은 에너지 드링크를 좋아하는 회사원이다. 에너지 드링크는 카페인, 아르기닌, 타우린, 나이아신 등의 성분이 들어있어 피로 회복에 도움을 주는 에너지 보충 음료수이다. 야근을 마치고 한 www.acmicpc.net 소스코드 풀이 ★ 에너지 드링크의 양을 최대로 하기 위해서는 주어진 에너지 드링크들 중 가장 양이 적은 것과 큰 것을 합쳐준 뒤, 그 다음 양이 적은 것과 처음 합친 것을 다시 합하는 과정을 진행해주면 됩니다 ex) a = [2,3,6,9,10] ans = 11 a = [3,6,9,11] ans = 12.5 a = [6,9,12.5] ans = 15.5 a = [9,15.5] ans = 20

Algorithm/백준 2023.06.26

[백준 알고리즘] 1758번: 알바생 강호 (Python)

https://www.acmicpc.net/problem/1758 1758번: 알바생 강호 첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같 www.acmicpc.net ' 소스코드 풀이 ★ 받을 수 있는 팁을 최대로 만들기 위해서는 "원래 주려고 하는 돈이 가장 높은 순서 + 입구에 들어가는 순서가 빠른 순서"가 되어야 합니다. ★ 해당 사람이 팁을 지불했다면, 팁을 리스트에서 삭제 해줘야 합니다 !

Algorithm/백준 2023.06.23

[백준 알고리즘] 6550번: 부분 문자열 (Python)

https://www.acmicpc.net/problem/6550 6550번: 부분 문자열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다. www.acmicpc.net 소스코드 풀이 ★ 부분 문자열이 되기 위해서는 단순히 s의 알파벳이 t안에 들어있어야 한다만 성립하는 것이 아니라, 그 순서까지 일치해야 합니다 ! ex) person compression => s 안의 문자들이 t도 들어있지만, 순서가 일치하지 않기 때문에 합쳤을 때 부분 문자열이 될 수 없음 !

Algorithm/백준 2023.06.23
반응형