본문 바로가기

문제풀이12

[백준/자바(JAVA)] 스위치 켜고 끄기 1244 Silver 4 💌문제 https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 💌풀이 구현문제로, 문제에서 요구하는 대로만 구현하면 된다. 학생 수만큼 루프 돌면서 현재 원소가 남학생이라면 스위치 개수만큼 루프를 자기가 받은 수만큼 배수로 증가시켜가면서 전부 스위치를 반대로 바꾼다. 만약 현재 원소가 여학생이라면 post랑 back을 각각 현재 원소의 -1, +1 인덱스로 정의해준다. 그리고 계속 while 루프 돌면서 post랑 back 위치의 스위치 상태가 .. 2023. 2. 11.
[백준/파이썬(Python), 자바(JAVA)] 회의실 배정1931 Silver1 💌문제 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 💌풀이 그리디 알고리즘 문제이다. 그리디 알고리즘이란, 최적의 솔루션을 찾기 위해 알고리즘의 각 단계에서 최적의 선택을 하는 수학적 최적화 기법이다. 솔루션을 반복적으로 구성하여 최적화 문제를 해결하는데 사용하며, 항상 현재 사용 가능한 최상의 값을 선택한다. 이러한 그리디 알고리즘은 구조가 단순한데, 개인적으로는 솔루션 떠올리는게 어려운 것 같다. 또한, 그리디는 간단하고 효율적이지만 항상 최적의 솔루션이 나오지는 않을 수 있다. 이럴 때는 DP등의 다른 알고리즘을 사용해야 한다. 아래 코드에 대한 설명.. 2023. 2. 10.
[백준/파이썬(Python),자바(JAVA)] 기타줄 1049 Silver 4 💌문제 https://www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 💌풀이 일단 먼저 6개가 들어있는 패키지의 가격대로 정렬한 리스트와 낱개로 살 때의 가격대로 정렬한 리스트를 만든다. 루프를 돌면서 만약에 n이 6보다 같거나 크면 패키지 가격으로 살 수 있기 때문에 n//6한 값만큼 패키지를 살 수 있으므로, 그렇게 연산해서 answer에 패키지 가격을 더해본다. 그리고, 낱개로 6개를 샀을 때의 가격도 계산해본다. 그 다음에 패키지가격으로 샀을 때,.. 2023. 2. 8.
[백준/파이썬(Python), 자바(JAVA)] 수리공 항승 1449(Silver 3) 💌문제 https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 💌풀이 물이 새는 곳을 편의상 창문이라고 칭하겠다. 창문이 있는 위치는 제각각으로 들어오기 때문에, 연산하기 쉽도록 처음에 정렬을 하고 시작한다. 물을 막을 때 적어도 그 위치의 좌우 0.5만큼 간격을 줘야 한다고 했기 때문에, x-0.5와 x+0.5까지를 고려하며 계산해야 한다. 만약 테이프의 길이가 최대 1이라면, (x+0.5)-(x-0.5)=1이기 때문에 테이프는 창문.. 2023. 2. 7.