본문 바로가기

728x90
반응형

분류 전체보기

(203)
[백준] 소가 길을 건너간 이유 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..
이진 탐색 (Binary Search) 이진 탐색 : 데이터가 정렬되어 있는 배열에서 특정한 값을 찾아내는 알고리즘이다. 반으로 쪼개가면서 탐색을 하는데 내부의 데이터가 반드시 정렬되어있어야 함. 배열의 중간에 있는 임의의 값을 선택하여 찾고자 하는 값 x와 비교한다. x가 중간 값보다 작으면 중간 값을 기준으로 좌측의 데이터들을 대상으로 비교하고, 크다면 배열의 우측을 대상으로 다시 탐색한다. -> 해당 값을 찾을 때까지 중간 값을 임의로 선택하고 비교하는 과정을 반복함. 예시) my_list = [1, 9, 3, 5, 7, 13, 11, 17, 15] 라는 배열이 있음. 반드시 정렬 과정이 필요! 1 3 5 7 9 11 13 15 17 중에서 5를 찾고자 한다면 1 3 5 7 9 11 13 15 17 처음값 1, 끝값 17 일때, 중간값은..
[백준] 정열적인 정렬 : 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]
[백준] 먹을 것인가 먹힐 것인가 : 7795번 - Python https://www.acmicpc.net/problem/7795 7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net 문제의 접근 방법 - 이분탐색 알고리즘 활용하기 내가 막혔던 부분 - 시간 초과 문제 풀이 방법 테스트 케이스 T개 입력 받기 -> T번 만큼 반복문을 돌려 a,b(A의 수와 B의 수) 입력 받기 -> A의 크기와 B의 크기 입력 받기 -> 중첩 반복문을 통해 brute force 방법으로 A의 값들과 B의 값들의 크기 비교 -> 만약 A[i]가..
[백준] 2+1 세일 : 11508번 - Python https://www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net 문제를 풀면서 몰랐던 개념 (1) 일정 부분 합 구하기 -> sum 메소드와 슬라이싱 사용!!! arr = [10, 20, 30, 40, 50] a = sum(arr[:2]) b = sum(arr[:3]) print(a) print(b) >> 30 >> 60 * sum 메소드는 합을 구해준다 (2) 리스트를 특정 크기의 리스트로 분할하기 arr = [1, 2, 3, 4, 5, 6, 7,..
[백준] 소가 길을 건너간 이유 1 : 14467번 - Python https://www.acmicpc.net/problem/14467 14467번: 소가 길을 건너간 이유 1 3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다. www.acmicpc.net 문제를 풀면서 몰랐던 개념 (1) [Python] 딕셔너리 dict = {} dict['a'] = 3 dict['b'] = 5 print(dict) >> {'a': 3, 'b': 5} dict2 = {'a':3, 'b':5 } print(dict2['a']) >> 3 (2) [Python] in / not in 연산자 -> 딕셔너리 : 딕셔너리는 그대로 in / not in 연산을 사용하면 key..

728x90
반응형