본문 바로가기

반응형

분류 전체보기

(501)
백준 10989번 파이썬 1. 문제 2. 설명 카운팅 정렬은 데이터의 크기 범위가 제한되어 정수 형태로 표현할 수 있을때 사용 가능하다 . 이 문제의 경우에는 문제에 숫자의 범위가 10000까지 라고 정의되어있이 때문에 카운팅 정렬을 사용할 수 있다. 값끼리의 비교가 아닌, 값의 빈도수를 저장하여 정렬하므로 속도도 매우 빠르다. 시간 복잡도는 O(N+K) 이다. -> k : 입력받은 수 중 max 값 카운팅 정렬 알고리즘 1. 숫자의 범위만큼 값이 0인 배열 을 만들어 놓는다. 여기서 주의할 점! N의 범위는 10000이지만 배열의 인덱스는 0부터 시작하기 때문에 N이 10000일 경우를 대비하여 10001 개로 만들어줘야 한다. 2. x를 입력받고, x에 해당하는 인덱스에 1을 더해주며 각 x의 빈도수를 count 배열에 저장..
백준 2751번 파이썬 1. 문제 2. 설명 입력되는 수를 배열로 받아 sort()를 사용하여 정렬하였다. 다만, 2750번과의 차이점은 N이 1,000,000까지라는 것이다. 2750번처럼 int(input())로 입력을 받으면 타임아웃이 뜬다. 이때, import sys sys.stdin.readline()을 사용하여 문제를 풀어주었다. input() 이 sys.stdin.readline() 보다 느리다! input() 내장 함수는 prompt message를 출력하고, 개행 문자를 삭제한 값을 리턴하기 때문 input() 과 sys.stdin.readline() 의 차이 : 1. input() 내장 함수는 parameter로 prompt message를 받을 수 있다. 따라서 입력받기 전 prompt message를 출력..
백준 2750번 파이썬 1. 문제 2. 설명 입력되는 수를 배열로 받아 sort()를 사용하여 정렬하였다. 3. 코드 n = int(input()) a = [] for i in range (0,n): num = int(input()) a.append(num) a.sort() for j in range (0,len(a)): print(a[j])
백준 11829번 파이썬 1. 문제 2. 설명 알고리즘) n개의 원판이 있을때, n - 1개의 원판 즉, 맨 밑의 원판을 제외하고 나머지 원판들을 1번에서 2번으로 옮긴다. -> hanoi(n-1, a, c, b) 맨 밑의 원판을 1번에서 3번으로 옮긴다. -> print(a, c) 그리고 n - 1개의 원판들을 다시 2번에서 3번으로 옮긴다. -> hanoi(n-1, b, a, c) 최소한의 이동 값 규칙) n = 1일 때 1, n = 2일 때 3, n = 3일 때 7, n=4일 때 15 이므로 (2^n - 1)이라는 식이 나온다. 3. 코드 n = int(input()) def hanoi(n, a, b, c): if n == 1: print(a, c) else: hanoi(n-1, a, c, b) print(a, c) han..
[js] for Each & Map for Each 아무 값도 반환하지 않음. 기존 배열 변경 가능 const arr = [1, 2, 3] aarrrray.forEach((item, index) => { arr[index] = item * 2 }) console.log(arr)// [2, 4, 6] 1. value, index를 인자로 받기 item, index 순 const arr = ['apple', 'kiwi', 'grape', 'orange']; arr.forEach((item, index) => { console.log("index: " + index + ", item: " + item); }); //출력 결과 index: 0, item: apple index: 1, item: kiwi index: 2, item: grape in..
section1/unit10/Javascript 핵심 개념과 주요 문법(9/8) 블로깅 주제 Javascript Koans 과제 1. 지금 현재, 당신의 기분이나 느낌을 표현해 주세요. 좋은 페어 분을 만나 원활히 과제를 마쳤다. 이번 koans 과제를 하며 모르는 것들과 헷갈렸던 부분들을 많이 짚어볼 수 있었고, 처음으로 유닛 테스트 작성 관련한 부분을 만져볼 수 있어 유익한 경험이였던 것 같다. 내가 모르는게 이렇게 많다니! 자바스크립트 공부를 더 꼼꼼히 해야겠다. 특히 얕은 복사/깊은 복사는 정말 이해가 안된다...ㅠㅠ 2. 오늘 무엇을 학습한 내용 중 지금 떠올릴 수 있는 단어를 모두 나열해 주세요. Javascript Koans 3. 2에서 작성한 단어를 가지고, 오늘의 학습 내용을 설명해 보세요. 1. Introduction - 유닛 테스트를 작성하는 방법 테스트하는 값과..
백준 2447번 파이썬 1. 문제 2. 설명 이번 문제는 내가 접한 재귀 문제 중 가장 어려웠던 것 같다. 고민해봐도 해답이 보이지 않았고, 결국 정답을 찾아보기 시작했다. 코드를 이해하는데에도 시간을 좀 쏟았다..^^7 해당 블로그의 코드를 보며 이해하였다! https://lucian-blog.tistory.com/57 [백준 2447번] 별 찍기 - 10 in python 문제 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 lucian-blog.tistory.com 재귀 함수를 호출하면서 n이 1이 되면 ['*']가 리턴되므로, n이 3일 때 Stars = dra..
백준 17478번 파이썬 1. 문제 2. 설명 첫번째 차례에만 나오는 "어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다." 부분을 함수 호출 전에 출력해준다. 초기 i값을 0으로 두고 i를 하나씩 증가시키며 재귀함수를 불러온다. i가 마침내 n이 될때 "재귀함수는 자기 자신을 호출하는 함수라네" 를 출력해준 후, "____" * i +"라고 답변하였지." 를 순서대로 출력해준다. 이때 i는 1씩 줄어든다. 예를들어 n이 2일때, 2->1->0 순으로 i값이 줄어들게 된다. 3. 코드 def recursion(i, n): print("____"*i + '"재귀함수가 뭔가요?"') if i == n: print("____"*i + '"재귀함수는 자기 자신을 호출하는 함수라네"') else: print("____"*i + ..

반응형