본문 바로가기

전체 글

(62)
백준 14720: 우유 축제(DP) ** www.acmicpc.net/problem/14720 14720번: 우유 축제 영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다. 입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다. 맨 처음에는 딸기우유를 한 팩 마신다. 딸기우유를 한 팩 마신 후 www.acmicpc.net 마시는 규칙 : 처음은 무조건 딸기 딸기--> 초코--> 바나나 -->딸기 순으로 먹어야 함. 첫째 줄에 우유 가게의 수 N이 주어진다. (1 ≤ N ≤ 1000) 둘째 줄에는 우유 가게 정보가 우유 거리의 시작부터 끝까지 순서대로 N개의 정수로 주어진다. 우유 가게마다 마시거나(1) 마시지 않거나(0). 한번 지나간 가게는 돌아갈 수 없음. 0 : 딸기우유만을 파는 가게, 1 : 초코우유만을 파는 가게, 2 : ..
백준 12782 : 비트 우정지수(그리디) www.acmicpc.net/problem/12782 12782번: 비트 우정지수 진홍이는 숫자를 좋아한다. 오늘도 숫자를 가지고 놀던 진홍이는 두 숫자의 비트 우정지수를 구해보았다. 비트 우정지수란, 10진법으로 나타낸 두 정수를 이진수로 나타내었을 때, 두 숫자를 같 www.acmicpc.net 두개의 이진수를 각 자릿수를 뺸다. --> 위가 0,아래가 1인 경우는 -1 / 위가 1, 아래가 0으로 다른 경우는 1이 나올것이다. 1과 -1은 페어가 되므로, 두개를 짝지어서 바꿔줌으로써 한번의 기회를 쓸 수 있다. 바꿀 수 있을만큼 바꿔주고, 남아있는 것은 0을 1로 뒤집어주는 1번연산을 사용해야 함. def solve(A,B): diff = [A[i]-B[i] for i in range(len(A))..
백준 11256 : 사탕 (그리디) www.acmicpc.net/problem/11256www.acmicpc.net/problem/11256 11256번: 사탕 당신은 사탕 공장의 주인이다. 날마다, 당신은 J개의 사탕을 가게에 보내기 위해 상자에 포장해야 한다. 당신은 크기가 다른 상자 N개를 가지고 있다. 당신은 편리를 위해 상자를 최소한으로 쓰 www.acmicpc.net N개의 상자로 J개의 사탕을 포장해야함(최소 상자) Input: J, N (사탕 갯수, 상자 크기) Output : 최소로 필요한 상자의 수 사탕 갯수와 상자의 용량을 인풋으로 받는다. 상자의 인풋은 [list(map(int,input().split())) for _ in range(N)] 으로 받으면 for문 없이 받아줄 수 있다. 가장 용량이 큰 상자부터 사용하..
[Mac OS] terminal에서 Jupyter 실행 시 오류 Mac에서는 윈도우와 달리 conda prompt를 terminal이 대신합니다. 아나콘다 설치 직후에, 터미널에서 jupyter notebook/ jupyter lab을 실행하려 하면 다음과 같은 오류 메시지가 나타납니다. zsh: command not found: jupyter 저는 다음으로 이를 해결했습니다. step1. brew 설치 : brew.sh/index_ko 아직 저에게는 낯설지만, terminal에서 brew라는 것을 설치해줍니다. 각종 라이브러리 설치 시에도 brew가 필요했던 기억으로 보아, 어플로 실행시킬 수 있더라도 설치해두는 것이 좋은 것 같습니다. 위 url을 따라가서 나오는 스크립트를 터미널에 입력해주면, 암호 입력 후 설치가 진행됩니다. step2. brew로 jupyte..
백준 9440 : 숫자 더하기(그리디)*** www.acmicpc.net/problem/9440 9440번: 숫자 더하기 강민이가 초등학교 3학년일 때, 담임선생님이 이런 문제를 냈었다. 숫자 1, 2, 7, 8, 9 를 사용해서 만든 두 숫자를 더했을 때, 나올 수 있는 가장 작은 수는 무엇일까요? 강민이는 이 문제의 답이 2 www.acmicpc.net def solve(T): N = T[0] numbers = sorted(T[1:]) zeros = numbers.count(0) n, m = '','' for i in range(zeros,len(numbers)): if (zeros-i)%2==0: n+= str(numbers[i]) else: m+= str(numbers[i]) new_n = n new_m = m for i in range(z..
백준 4796 : 캠핑(그리디) www.acmicpc.net/problem/4796 4796번: 캠핑 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다. www.acmicpc.net Input : L, P, V (연속하는 P일 중, L일 동안 사용 가능, V일 짜리 휴가) (1
백준 2891 : 카약과 강풍(그리디) www.acmicpc.net/problem/2891 2891번: 카약과 강풍 첫째 줄에 팀의 수 N, 카약이 손상된 팀의 수 S, 카약을 하나 더 가져온 팀의 수 R이 주어진다. (2 ≤ N ≤ 10, 1 ≤ S, R ≤ N) 둘째 줄에는 카약이 손상된 팀의 번호가 주어진다. 팀 번호는 중복되지 않 www.acmicpc.net 문제 요약: N개의 팀 중, 카약을 안 가져온 팀의 수 S, 여분의 카약이 있는 팀의 수 R. R 개의 팀은 앞뒤의 팀에게 카약을 빌려줄 수 있다. 카약이 없는 최소 팀의 수는? 안 가져온 팀의 번호를 que_S에 넣고, 여분이 있는 팀의 번호를 que_R에 넣는다. que_S를 최대한 조금 남기는 게 목적이므로, que_S안의 팀을 돌면서 빌릴 팀이 있나 탐색한다. 이때, que..
백준 1783 : 병든 나이트(그리디) **** www.acmicpc.net/problem/1783 1783번: 병든 나이트 첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 나이트가 움직일 수 있는 방법 1. (위2, 오1) 2. (위1, 오2) 3. (아1, 오2) 4. (아2, 오1) 나이트가 이동하면서 방문할 수 있는 칸의 최댓값은? 단, 이동횟수 4회 이상일 경우, 네 번 방법 모두 사용해야 함. --> 체스판이 작을 경우. 최대한 1,4를 많이 쓰는 것이 유리. Input : N, M = 체스판의 세로, 가로 Output : 방문할 수 있는 최대 칸 수 문제 풀이> 단순하게 생각했는데 케이스를 깔끔하게 나누는 게 생각보다 까다로웠다. 다..