본문 바로가기

백준42

[백준] 25191번 문제출처: https://www.acmicpc.net/problem/25191 25191번: 치킨댄스를 추는 곰곰이를 본 임스 콜라 $4$개, 맥주 $2$개로 치킨을 $4$마리까지 먹을 수 있지만, 치킨집에 치킨이 $3$마리밖에 없으므로 임스도 $3$마리까지만 먹을 수 있다. www.acmicpc.net 문제 내용은 대략 이렇다. 치킨집에서 시킬 수 있는 치킨 수 N이 주어지고, 집에 있는 콜라와 맥주의 개수가 각각 A,B로 주어진다. ​ 치킨을 먹기 위해서는 두 가지 조건 중 적어도 한 조건을 만족해야 한다. 첫째, 치킨 한 마리당 콜라 두 개를 마실 것. 둘째, 치킨 한 마리당 맥주 한 캔을 마실 것. ​ or이기 때문에 두 조건을 더하기를 하면 된다. 만약 콜라가 4개, 맥주가 2개 있으면 콜라 2.. 2022. 6. 15.
[백준] 1463번 문제출처: https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 주어진 숫자 X를 1로 만드는 데 연산을 사용하는 횟수의 최솟값을 출력하는 문제다. 연산은 세 가지만 사용할 수 있다. 1) X가 3의 배수면 3으로 나눈다. 2) X가 2의 배수면 2로 나눈다. 3) 1을 뺀다. ​ 처음에는 우선순위를 두고 그리디 방법으로 풀었더니 오답이 나왔다. 질문란에 가니 나같은 사람이 많았다 ^_ㅠ... 반례에 대한 질문의 답을 보니 3k+1 꼴일 때, 1을 빼고 3으로 나누는데 2로 나누는 것보다 항상 적게 걸린다고 할 수 없기 때문이라는 듯하다. 반례가 참 많았다.. 따.. 2022. 6. 15.
[백준] 5566번 문제출처: https://www.acmicpc.net/problem/5566 5566번: 주사위 게임 상근이는 혼자 보드 게임을 하고 있다. 이 보드 게임의 보드는 N칸으로 이루어져 있고, 출발점은 1칸, 도착점은 N칸이다. 각 칸에는 지시 사항이 적혀있다. 지시 사항은 말을 얼만큼 이동해야 하 www.acmicpc.net 이리저리 할게 많으니 머리가 아파서 잠시 쉬어가고자 푼 브론즈 단계 문제다. 내가 '칸'에 대한 공포가 있어서 극복하고자 칸이 들어가는 문제를 풀었다. 물론 bfs, dfs 문제가 아닌 구현 문제지만. ​ 보드 게임의 보드는 N칸으로 이루어져 있고, 출발점은 1번째 칸, 도착점은 N번째 칸이다. 각 칸에는 얼만큼 이동해야하는지가 쓰여있다. 도착점에 다다르면 끝. 달팽이는 올라가고싶다 .. 2022. 6. 15.
[백준] 2753번 문제출처: https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 단순 수학 구현 문제다. 연두가 주어졌을 때 윤년이면 1, 아니면 0을 출력한다. 윤년의 조건은 "연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때"이다. 이걸 그대로 조건문에 달아주면 된다. ​ if year%4 == 0 and (year%100 != 0 or year%400 == 0) ​ 이 조건에 부합하면 1을, 그렇지 않으면 0을 출력한다. 2022. 6. 15.
[백준] 1929번 문제출처: https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 소수 구하는 알고리즘 구현은 경험이 있기 때문에 코드를 금세 짰다. 두 수가 주어지는데, 그 두 수를 포함한 숫자 사이의 소수를 모두 출력하는 것이다. for문을 돌려서 소수로 판정나면 그 수를 print해주는 방식을 이용했다. 문제는 시간초과가 일어난다는 점이었다. 머리를 싸매다가 다른 사람들의 제출 코드도 참고하고, 인터넷에서 검색해서 찾아봤다. 이중 반복문 내에서 1과 자신을 제외한 값으로 나누어떨어지지 않는다면.. 2022. 6. 15.
[백준] 2108번 문제출처: https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 주어진 홀수개의 숫자들에 대한 산술평균, 중앙값, 최빈값, 범위를 구하는 것이었다. 다 괜찮은데 최빈값 구하는데서 발목이 잡혔다. 찾아보니 collection 에서 Counter라는 모듈을 사용하면 된다고 한다. most_common을 쓰면 최빈값을 출력할 수 있고, 최빈값은 (해당값, 빈도수) 로 나타난다. 만약 빈도수가 같으면 두 번째로 작은 값을 출력한다. ​ 2022. 6. 15.