[백준 1484번] 파이썬 - 다이어트
http://www.acmicpc.net/problem/1484 1484번: 다이어트 성원이는 다이어트를 시도중이다. 성원이는 정말 정말 무겁기 때문에, 저울이 부셔졌다. 성원이의 힘겨운 다이어트 시도를 보고만 있던 엔토피아는 성원이에게 새로운 저울을 선물해 주었다. www.acmicpc.net # 조건 다이어트 중인 성원이가 저울을 부셨다. 새로운 저울위에 올라간 성원이가 안돼!!!!! G킬로그램이나 더 쪘다고 말을 했을 때, 여기서 G킬로그램은 성원이 현재 몸무게의 제곱에서 성원이가 기억하고 있던 몸무게의 제곱을 뺀 것 이다. 성원이의 현재 몸무게로 가능한 것을 모두 출력하라. # 접근 방법 각 자연수의 제곱을 기록해준다. 이 때, 50,000의 제곱 - 49,999의 제곱이 99,999가 되므로 5..
2022.12.03
[백준 5525번] 파이썬 - IOIOI
http://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net # 조건 N+1개의 I와 N개의 O로 이루어져 있으면서, I와 O가 교대로 나오는 문자열을 Pn 이라고 한다. P1 = IOI, P2 = IOIOI I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 Pn이 몇 군데 포함되어 있는지 구하는 프로그램 작성 1
2022.10.12
no image
[백준 17276번] 파이썬 - 배열 돌리기
https://www.acmicpc.net/problem/17276 17276번: 배열 돌리기 각 테스트 케이스에 대해 회전 연산을 마친 후 배열의 상태를 출력한다. n줄에 걸쳐 각 줄에 n개의 정수를 공백으로 구분하여 출력한다. www.acmicpc.net # 조건 크기가 n x n 인 2차원 정수 배열 X X를 45° 의 배수만큼 시계방향 혹은 반시계방향으로 돌리려고 한다. X를 시계 방향으로 45° 돌리면 아래와 같은 연산이 동시에 X에 적용되어야 한다: X의 주 대각선을 ((1,1), (2,2), …, (n, n)) 가운데 열 ((n+1)/2 번째 열)로 옮긴다. X의 가운데 열을 X의 부 대각선으로 ((n, 1), (n-1, 2), …, (1, n)) 옮긴다. X의 부 대각선을 X의 가운데 행 ..
2022.10.10
[백준 18870번] 파이썬 - 좌표 압축
https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net # 조건 수직선 위에 N개의 좌표 X1, X2, ... Xn Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. 1
2022.10.08
[백준 11723번] 파이썬 - 집합
https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net # 조건 add x : S에 x를 추가한다. S에 이미 x가 있는 경우 연산 무시 remove x : S에서 x를 제거한다. S에 x가 없는 경우에는 연산 무시 check x : S에 x가 있으면 1을, 없으면 0을 출력 toggle x : S에 x가 있으면 x를 제거, 없으면 x를 추가 all : S를 {1,2,3,...,20} 으로 바꾼다. empty : S를 공집합으로 바꾼다. # 접근 방법 & Solution 조건의 함수들을..
2022.09.22
[백준 10989] 파이썬 - 수 정렬하기 3
https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net # 조건 N개의 수가 주어질 때, 오름차순으로 정렬하여라. 첫 줄에 수의 개수 N(1
2022.09.17
[백준 2805] 파이썬 - 나무 자르기
https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net # 조건 나무 M미터 필요한 상근이 목재 절단 높이 H설정 높이가 H보다 높은 나무는 H위의 부분 절단 자른 부분을 들고 집에 간다. H는 양의 정수 또는 0 필요한만큼만 들고 간다고 할 때, M미터의 나무를 집에 가져가기 위한 설정할 수 있는 높이의 최댓값 # 접근방법 브루트포스로 한다면 시간초과가 발생하기 때문에 이분탐색을 활용 처음엔 시작, 끝점을 중간..
2022.09.17
[백준 10816] 파이썬 - 숫자 카드2
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net # 조건 숫자 카드는 정수 하나가 적혀있다. N개의 숫자카드를 입력 받는다 이후 주어지는 M개의 카드가 주어질 때 '같은 번호'의 카드가 몇 개인지 출력하라 # 접근 방법 및 SOLUTION 리스트를 정렬 후 counter 메서드를 이용하여 푸니 시간초과가 발생하였다. 이진 탐색 또는 딕셔너리를 활용해주는 것이 바람직해 보였고 딕셔너리 내에 각 카드 숫자의 개수를..
2022.09.14
[백준 10814] 파이썬 - 나이순 정렬
# 조건 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이 때, 나이가 적은 순으로, 나이가 같다면 등록순으로 출력하여라. # 접근 방법 버블 정렬을 이용하여 나이순으로 정렬해 줄 수 있다. 하지만 파이썬엔 sort라는 좋은 함수가 있고 lambda라는 또 다른 함수도 존재한다. 처음에 문자열로 받아주기 때문에 lambda x:x[0]로 정렬을 해준다면 문자열 기준 1 -> 9와 같이 보기 때문에 나이가 9살인 친구가 10인 친구보다 뒤로 가게 된다. 따라서 정렬 기준을 int형으로 바꿔준다. T = int(input()) people = [list(map(str, input().split())) for _ in range(T)] people.sort(key= lambda x:i..
2022.09.14