본문 바로가기

728x90
반응형

분류 전체보기

(198)
[백준] 최후의 승자는 누구? : 12760번 - Python https://www.acmicpc.net/problem/12760 12760번: 최후의 승자는 누구? 입력의 첫 줄에 플레이어의 수 \(N\)과 가진 카드 수 \(M\)이 입력 된다. \(( 2 \le N \le100, 1 \le M \le 100 )\) 그 다음 \(N\)줄에 걸쳐 각 플레이어가 들고 있는 카드에 적힌 숫자들이 입력된다. \(( 1 \le\) 카 www.acmicpc.net 문제를 풀면서 몰랐던 개념 (1) [Python] 비어있는 배열, 리스트 확인하기 -> 리스트가 비어있는지 아닌지 여부를 확인하기 위해서는 'not'을 사용해서 알 수 있음! # case 1 # arr = [] if not arr: print("arr is empty") else: print("arr is not ..
[백준] 잃어버린 괄호 : 1541번 - Python https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 문제를 풀면서 몰랐던 개념 - for 문 range 자리에 리스트 원소를 split 메소드로 나눈 값들만큼의 반복을 설정할 수 있다. 문제의 접근 방법 - '-' 부호가 나오기 전까지 모두 괄호 안으로 묶어서 더해버리기 - 수식이 주어지면 '+'를 기준으로 먼저 더해주고 남겨진 값들을 빼주면 항상 최솟값을 만들 수 있다. 내가 막혔던 부분 처음 아이디어를 떠올리는 과정에서 막혔다. -> 마이..
[백준] 거스름돈 : 5585번 - Python https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net https://ye5ni.tistory.com/66 ===> 참고 문제의 접근 방법 - 거스름돈 개수가 가장 적게 잔돈을 주려면 잡화점에서 가지고 있는 잔돈을 가장 큰 단위부터 거슬러주어야 함. - 타로는 1000엔 지폐를 한 장 냈기 때문에 1000엔에서 타로가 지불해야 할 돈을 빼준 값이 받아야할 잔돈의 값을 의미함. 문제 풀이 방법 타로가 지불해야 할 돈 N엔 입력받기 ..
[백준] 사탕 : 11256번 - Python https://www.acmicpc.net/problem/11256 11256번: 사탕 당신은 사탕 공장의 주인이다. 날마다, 당신은 J개의 사탕을 가게에 보내기 위해 상자에 포장해야 한다. 당신은 크기가 다른 상자 N개를 가지고 있다. 당신은 편리를 위해 상자를 최소한으로 쓰 www.acmicpc.net 문제의 접근 방법 포장할 수 있는 사탕의 개수 = 상자의 크기(가로길이 * 세로길이) "상자의 크기를 내림차순으로 정렬" 문제 풀이 방법 테스트 케이스 T개 입력 받기 -> T번만큼 반복문을 돌려 사탕의 개수(J), 상자의 개수(N) 입력 받기 -> N번만큼의 반복문을 돌려 상자의 가로(c)와 세로(r)길이를 입력받아 이 두 값을 곱한 값을 빈 리스트 arr에 저장하기 -> 리스트 arr를 내림차순으로..
[백준] 행복 유치원 : 13164번 - Python https://www.acmicpc.net/problem/13164 13164번: 행복 유치원 입력의 첫 줄에는 유치원에 있는 원생의 수를 나타내는 자연수 N(1 ≤ N ≤ 300,000)과 나누려고 하는 조의 개수를 나타내는 자연수 K(1 ≤ K ≤ N)가 공백으로 구분되어 주어진다. 다음 줄에는 원생들 www.acmicpc.net 문제의 접근 방법 - 인접한 두 사람의 키의 차이를 비교하기 - N명의 사람을 K조로 나누었기 때문에 (N-K)까지의 키 차이를 더하기 내가 막혔던 부분 N명의 사람을 K개의 조로 나누었다는 생각을 못하고, 무조건 인접한 두 사람들의 키 차이가 가장 최소 비용을 산출해낼 수 있다고 생각함. (그래서 두 사람을 한 조에 넣으려고 함) N,K = map(int, input()...
[백준] 생일 : 5635번 - Python https://www.acmicpc.net/problem/5635 5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제의 접근 방법 - 가장 나이가 많은 사람과 적은 사람을 어떻게 정렬할 수 있을지 - 여러 개의 값을 입력 받아 리스트에 저장하기 내가 막혔던 부분 나이가 많은 사람이라는 것은 내림차순으로 정렬했을 때, 가장 첫 번째 인덱스 값을 의미하고 나이가 적은 사람이라는 거슨 오름차순으로 정렬했을 때, 가장 첫 번째 인덱스 값을 의미한다. 문제 풀이 방법 n명의 학생을 의미하는 n값 입력 받기 -> 나이가 많은 순서대로, 적은 순서대로 정렬할 수 있게 빈 리스트 두 개 arr1, a..
[백준] 동일한 단어 그룹화하기 : 16499번 - Python https://www.acmicpc.net/problem/16499 16499번: 동일한 단어 그룹화하기 첫째 줄에 단어의 개수 N이 주어진다. (2 ≤ N ≤ 100) 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 소문자로만 이루어져 있고, 길이는 10을 넘지 않는다. www.acmicpc.net 문제의 접근 방법 단어를 알파벳 단위로 분리해서 정렬한 후 비교하기 -> 먼저 입력받은 문자를 알파벳 단위로 분리해서 정렬하여 저장한 후, 그 분리된 알파벳들을 합쳐서(join) 미리 선언해 둔 빈 리스트 arr에 없다면 추가해주기 ( 이미 입력받은 문자열을 정렬했기 때문에 만약 값이 같다면 arr에 추가하지 않고 넘어가게 되므로, 각기 다른 문자열들만 저장되게 된다 = 단어가 ar..
[백준] 비트 우정지수 : 12782번 - Python https://www.acmicpc.net/problem/12782 12782번: 비트 우정지수 진홍이는 숫자를 좋아한다. 오늘도 숫자를 가지고 놀던 진홍이는 두 숫자의 비트 우정지수를 구해보았다. 비트 우정지수란, 10진법으로 나타낸 두 정수를 이진수로 나타내었을 때, 두 숫자를 같 www.acmicpc.net 문제의 접근 방법 - 이진수 n과 이진수 m을 문자 하나씩 비교해서 문자가 다를 경우를 체크해주기 - n이나 m 둘 중 하나를 기준점으로 삼아서 문자가 다를 경우에 그게 0인지 1인지 체크해서 총 몇 개인지 계산해주기 - 그 두 값중 더 큰 수가 바로 최소 연산횟수! 내가 막혔던 부분 - 기본적인 아이디어를 생각하지 못했음. 내가 생각한 아이디어: 두 수가 같지 않으면 무조건 한 번은 바꿔야 하..

728x90
반응형