Duckgugong

    백준-2108 통계학 (최빈값! Counter, most_common())

    문제 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 풀이 최빈값 구하는게 어려운 문제이다. 파이썬에서 어떤 요소가 얼마나 나왔는지 구하는 방법은 Counter를 이용해서 구할 수 있다. Counter를 이용하면 딕셔너리 형태로 key 값에 가장 많이 나온 수, value 값에 그 수의 갯수가 나온다. value 값을 기준으로 내림차순 되어서 출력되지만 만약 value 값이 같다면, 리스트에서 key 값이 먼저 나온 순으로 나온다. 즉, 리스트에서 갯수가 가..

    백준-1929 소수 구하기 (에라토스테네스의 체)

    문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 풀이 에라토스테네스의 체를 이용해서 풀어보자. N까지의 수를 모두 소수라 가정하고 가장 큰 수의 제곱근 + 1 까지의 소수들의 배수들을 모두 false로 만들면 된다! 그리고 1은 소수가 아니므로 false로 만들자!!! M, N = map(int, input().split()) a = [True] * (N + 1) b = int((N+1) ** 0.5) + 1 a[1] = False for i in range(2, b): if a[i]: for k in range(i + i, N + 1, i): a[k] = False for i in range(M, N + 1): if a[i]: print(i)

    백준-1181 단어 정렬하기 (sort 함수, lambda)

    문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 풀이 sort 함수의 key function에 lamba를 이용해서 길이순, 길이가 같으면 사전순으로 정렬하자 . num = int(input()) words = [] for i in range(0, num): new_words = input() if (len(new_words), new_words) not in words: words.append((len(new_words), new_words)) words.sort(key=lambda x: (x[0], x[1])) //길이순, 길이가 같으면 사전순으로 for i in words: print(i[1])

    immutable

    원본이 불변한다 - immutable Array.from() 객체인 array의 내용만 복사해서 담아줌. 서로 다른 두 array가 탄생함. 배열을 만들고 초기화까지 하는 내장 함수. var a = [1, 2]; var b = Array.from(a); //Array.from은 내용은 같지만 둘이 완전 다른 새로운 배열이 만들어진다. console.log(a, b, a===b); // [1, 2] [1, 2] true // a와 b는 내용이 같을 뿐 완전히 다름. 아래처럼 원하는 길이만큼의 배열을 만들 수도 있다. 첫번째 인자에 {lenght: 원하는 배열의 길이} 객체를, 두번째 파라미터로 원하는 값을 반환하는 콜백함수를 넘겨줄 수 있다. 콜백함수의 인자는 (현재 값, index)를 인자로 사용한다. ..