본문 바로가기

728x90
반응형

백준 write-up/정렬 & 그리디

(84)
[백준] 아우으 우아으이야!! : 15922번 - Python https://www.acmicpc.net/problem/15922 15922번: 아우으 우아으이야!! N개의 선분을 모두 그렸을 때, 수직선 위에 그어진 선분 길이의 총합을 출력한다아아어으잉에애야우아으아이아야아아아아아아이야!!! www.acmicpc.net 문제의 접근 방법 - 선분이 겹치는 경우의 수를 case별로 나눠서 생각해보기 - x,y는 좌표가 아니라 구간을 의미 - 입력되는 x와 y값은 오름차순으로 정렬되어 있는 것과 같음 - 처음 입력 받는 x,y 값과 그 다음에 입력받을 x,y값들을 분리해서 입력 받기 내가 막혔던 부분 선분이 그려질 수 있는 경우의 수를 파악하지 못 함. 문제 풀이 방법 (1) 수직선 위에 그릴 선분의 개수 N을 입력 받는다. (2) 가장 처음으로 입력 받을 x,y값을 ..
[백준] 수열과 쿼리 3 : 13544번 - Python https://www.acmicpc.net/problem/13544 13544번: 수열과 쿼리 3 길이가 N인 수열 A1, A2, ..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오. i j k: Ai, Ai+1, ..., Aj로 이루어진 부분 수열 중에서 k보다 큰 원소의 개수를 출력한다. www.acmicpc.net 문제를 풀면서 몰랐던 개념 [Python] 문제의 접근 방법 입 내가 막혔던 부분 f 문제 풀이 방법 케 소스코드
[백준] Project Teams : 20044번 - Python https://www.acmicpc.net/problem/20044 20044번: Project Teams 입력은 표준입력을 사용한다. 입력의 첫 번째 행에는 팀 수를 나타내는 양의 정수 n(1 ≤ n ≤ 5,000)이 주어진다. 그 다음 행에 학생 si 의 코딩 역량 w(si)를 나타내는 2n개의 양의 정수가 공백으로 www.acmicpc.net 문제의 접근 방법 - 학생의 수는 항상 짝수. - 가장 높은 역량을 가진 학생과 가장 낮은 역량을 가진 학생이 한 팀이 되면 됨. - 오름차순 정렬, 내림차순 정렬. - 최솟값 구하기. 문제 풀이 방법 팀 수를 나타내는 N 입력 받기 -> 학생들의 코딩 역량을 나타내는 양의 정수 2N개 입력받아 리스트에 저장 -> 가장 큰 수와 가장 작은 수를 같은 팀에 넣기..
[백준] 단어 퍼즐 : 9946번 - Python https://www.acmicpc.net/problem/9946 9946번: 단어 퍼즐 케이스마다 번호를 붙여서 예제출력과 같은 형식으로 출력한다. 준하가 알파벳을 제대로 회수했다면 same 을, 잘못 회수했다면 different 를 출력한다. www.acmicpc.net 문제를 풀면서 몰랐던 개념 [Python] 문자열(string)을 한 글자씩 끊어서 리스트로 바꾸기 -> 입력 받은 문자열을 하나하나 분리해서 리스트에 저장하고 싶을 때 사용! str = "love" print(list(str)) >>> ['l','o','v','e'] a = list(str) print(a) >>> ['l','o','v','e'] 문제의 접근 방법 입력 받은 문자열을 하나하나씩 끊어서 저장한 후 정렬하기! 내가 막혔..
[백준] 소가 길을 건너간 이유 3 : 14469번 - Python https://www.acmicpc.net/problem/14469 14469번: 소가 길을 건너간 이유 3 첫 번째 소는 2초에 도착하고 3초에 농장을 입장한다. 그 다음에는 세 번째 소가 5초에 도착하여 12초에 농장을 입장한다. 마지막으로 두 번째 소가 8초에 오는데, 세 번째 소가 검문을 받고 있으 www.acmicpc.net 문제의 접근 방법 - 오름차순 정렬 - 반복문 속 조건문 사용 - 소가 도착했을 때, 기다릴 필요가 있는지 없는지 여부에 따라 구현 내가 막혔던 부분 아이디어는 같았지만 코드 짜는 방식에 있어서 오답과 정답으로 나뉘었다. # 처음 짰던 코드 (오답 코드) n = int(input()) arr = [] for _ in range(n): a,b = map(int, input()..
[백준] 스네이크 버드 : 16435번 - Python https://www.acmicpc.net/problem/16435 16435번: 스네이크버드 첫 번째 줄에 과일의 개수 N (1 ≤ N ≤ 1,000) 과 스네이크버드의 초기 길이 정수 L (1 ≤ L ≤ 10,000) 이 주어집니다. 두 번째 줄에는 정수 h1, h2, ..., hN (1 ≤ hi ≤ 10,000) 이 주어집니다. www.acmicpc.net 문제를 풀면서 몰랐던 개념 - 변수 선언 위치에 따라서 초기화 되는 시기가 다름. 문제의 접근 방법 - 오름차순 정렬 - 단순하게 생각하고 접근하기 내가 막혔던 부분 - 길이가 1씩 늘어나는 것에 대해 length 변수를 선언해서 값을 증가시키려고 했다. # 처음에 잘못짰던 코드 n,s = map(int, input().split()) h = s..
[백준] 숫자놀이 : 1755번 - Python https://www.acmicpc.net/problem/1755 1755번: 숫자놀이 79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 www.acmicpc.net 문제를 풀면서 몰랐던 개념 (1) [Python] join 함수 -> 매개변수로 들어온 리스트에 있는 요소 하나하나를 합쳐서 하나의 문자열로 바꾸어 반환하는 함수이다. ex) ''.join(리스트) ['a', 'b', 'c'] 이런 리스트를 'abc'의 문자열로 합쳐서 반환해주는 함수! a = ['one2ye', 'loves', '20s'] p..
[백준] 정열적인 정렬 : 16212번 - Python https://www.acmicpc.net/problem/16212 16212번: 정열적인 정렬 형준이는 수열을 하나 가지고 있다. 형준이는 수열을 정열적으로 정렬해보려 한다. 과연, 정렬할 수 있을까? www.acmicpc.net 문제 풀이 방법 수열의 길이 n 입력받기 -> 입력 받은 n개의 수열을 리스트에 오름차순으로 정렬 -> 한 줄에 각 숫자 사이에 공백을 두고 출력 소스코드 n = int(input()) arr = sorted(list(map(int, input().split()))) [print(i, end=' ') for i in arr]

728x90
반응형