본문 바로가기

분류 전체보기124

백준 2018, 1940, 1253 https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net n = int(input()) # 연속된 수의 합이 n을 넘기면 어차피 그 뒤의 값들은 볼 필요가 없어 반으로 나눠줌 end = n // 2 if n % 2 == 0 else n // 2 + 1 A = list(range(1, end + 1)) # 구간합을 구하는 배열을 구함. S = [A[0]] for i in range(end-1): S.append(S[i] + A[i+1.. 2023. 10. 24.
백준 11659, 11660, 10986 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net n,m =map(int,(input().split(' '))) num = [] while n>0: num.append(n) n -=1 li=[] for i in range(m): li.append((input('구간').split(' '))) for i,j in li: print(sum(num[int(i)-1:int(j)])) 위의 코드는 주피터에서 적용해보면 알맞은 정답을.. 2023. 10. 22.
백준 1546, 2750, 11720 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net n = int(input()) nums = [] for i in range(n): nums.append(int(input())) nums.sort() print(*nums) > input으로 n을 받아서 n번 만큼 숫자를 받습니다. 받은 숫자를 오름차순으로 정렬해서 모든 요소를 출력했습니다. 그냥 제출했을 때는 시간이 80ms가 나왔습니다. import sys input = sys.stdin.readli.. 2023. 10. 22.
시간 복잡도/ 디버깅 1. 시간 복잡도 시간 복잡도는 어떤 작업을 수행하는 데 걸리는 시간을 어떻게 측정하는지에 대한 개념입니다. 이것은 주로 컴퓨터 과학에서 사용되며, 우리는 알고리즘(특정 작업을 수행하는 방법)의 효율성을 평가하기 위해 시간 복잡도를 분석합니다. 알고리즘에서는 주어진 문제를 해결하기 위한 연산 횟수를 의미합니다. 코딩 테스트에서는 시간 복잡도를 표현할 때 일반적으로 "Big O 표기법"을 사용합니다. Big O 표기법은 최악일 때의 연산 횟수를 기준으로 나타내는 표기법입니다. 시간 복잡도의 도출 기준 1. 상수는 시간 복잡도에서 제외된다. 2. 가장 많이 '중첩'된 반복문의 횟수가 시간 복잡도의 기준이 된다. 아래 예제를 통해 설명을 풀어보겠습니다. def once_loops(n): # 첫 번째 루프 fo.. 2023. 10. 22.
자바스크립트(배열/함수) 1. 배열(Array) 배열은 여러 값을 순서대로 저장할 수 있는 데이터 구조입니다. 배열은 원소(element)로 구성되며 각 원소는 고유한 인덱스를 가지고 있습니다. ( 배열을 구성하는 각각의 값을 배열요소라고 하며, 배열에서의 위치를 가리키는 숫자를 인덱스라고 합니다.) 배열은 여러 데이터 타입을 포함할 수 있으며, 배열의 크기는 동적으로 조정됩니다. 1. 배열 선언 let 배열명 2. 배열 초기화 배열명 = [요소1, 요소2, 요소3, 요소4 ...] 예) let arr; arr = [100, 200, 300]; const 배열명 = Array(요소1, 요소2, 요소3...) 3. 배열의 접근 let arr = [100, 200, 300] console.log(arr[0]) // 100 conso.. 2023. 10. 21.
자바스크립트(연산자/조건문/반복문) 1.연산자(Operator) 1. 산술 연산자 +, - , * , / , %, ** 2. 비교 연산자 >, =, true '3' == 3 -> true (자동 형변환이 되기 때문에) '3' === 3 -> false 3. 대입 연산자 =. +=, -=, *=, /=, %=, **= 4. 증감 연산자 ++변수, --변수, 변수++, 변수-- let num = 10 ++num // 11 num = num + 1 --num // 10 num = num - 1 num++ // 11 num = num + 1 num-- // 10 num = num - 1 num = 10 result = ++num // num = 11, result = 11 result = num++ // result = 10, num = 11 >.. 2023. 10. 21.