문제 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)
문제 알파벳 소문자로 이루어진 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 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)를 인자로 사용한다. ..
함수의 선언 함수는 여러개의 인자를 받아서, 그 결과를 출력한다 파라미터의 개수와 인자의 개수가 일치하지 않아도 오류가 나지 않는다. 만약, 파라미터 1개가 정의된 함수를 부를 때, 인자의 개수를 0개만 넣어 실행하면, 이미 정의된 파라미터(매개변수)는 undefined이라는 값을 갖게 된다. 이는 변수는 초기화됐지만, 값이 할당되지 않았기 때문이다. function printName(firstname) { var myname = "DUCK"; return myname + " " + firstname; } 만약 이 함수의 인자 firstname에 아무 값도 안주면 무슨 일이 일어날까? undefined가 출력된다. 선언은 되어있지만 할당이 되어있지 않기 때문이다~ console.log(printName(..