본문 바로가기

코딩테스트17

[파이썬] 백준 2309 일곱 난쟁이 (조합 combination) 백준 2309 일곱 난쟁이 문제 풀이https://www.acmicpc.net/problem/2309조합이란서로 다른 n개의 원소에서 (단, 0혹은 그 결과를 조합(combination)이라고 한다. ▶ 예시A, B, C 가 있을 때 2명으로 선택되는 가짓수는 얼마나 될까?(A, B), (A, C), (B, C) 로 총 3가지이고 이를 조합(combination)이라 한다. 여기서 중복을 허용하는 것은 순열(permutations)이다. 순열인 경우 총 6가지 가짓수가 나온다.('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B') ☞ 출처 조합combination / 組 合 서로 다른 개의 원소에서 (단, )개를 중복없이, 순서를 고.. 2024. 6. 21.
[파이썬] 백준 13706 이분탐색이란 백준 13706 문제풀이https://www.acmicpc.net/problem/13706이분탐색의 기본 원리전체 배열 중에 중간을 찾고,찾으려는 값이 중간 값보다 작으면, 중간에서 왼쪽으로 찾는다.배열의 end 값 변경찾으려는 값이 중간 값보다 크면, 중간에서 오른쪽으로 찾는다.배열의 start 값 변경위 1번에서 3번을 반복하여 값을 찾는다.이분탐색 전제조건전체 배열은 정렬되어 있다는 전제하에 진행한다. 이분탐색 기본 알고리즘 코드반복문과 재귀호출 방법이 있다.기본 알고리즘 코드를 숙지하고, 이후 상황에 맞게 적절히 수정하여 사용 ▶ 반복문#이분탐색 반복문def binary_search(target, data): data.sort() #data 정렬 먼저 start = 0 #배열의 맨 처.. 2024. 6. 19.
[Dart] if, swich 조건문 (with 백준 1330) if 문 다중처리 사용if (조건문) {} else if (조건문) {} else {}import 'dart:io';void main() { //입력값 받기 String? inp = stdin.readLineSync().toString(); int x = int.parse(inp); if (x 1 && x   if case 사용if ( 변수 case 조건문 ) {} else {}case 문의 변수는 상수만 가능하다.case 문의 변수 사용 시 변하지 않는 값이어야 한다. 10, 20과 같이..import 'dart:io';void main() { //입력값 받기 String? inp = stdin.readLineSync().toString(); int x = int.parse(i.. 2024. 6. 18.
[파이썬] 백준 1929 소수 구하기, 소수 판별법 백준 1929 문제풀이https://www.acmicpc.net/problem/1929풀이소수란1과 자기 자신으로밖에 나누어 떨어지지 않고, 자기 자신의 곱셈의 역수가 없는 수소수 예시101, 2, 3, 4, 5, 6, 7, 8, 9, 10 → 2,3,5,7알고리즘어떤 수 N 이하의 수로 N을 나눠서 한 번이라도 나누어 떨어지면 합성수, 아니면 소수여기서 N 이하는 N의 양의 제곱근 이하의 수로 판별할 수 있는 것이 key point→ math 모듈의 sqrt() 함수 활용아래와 같이 주어진 입력값 기반의 반복문으로 풀면 시간초과 발생import sysvar = sys.stdin.readline().rstrip().split(" ")rtn = ""for i in range(int(var[0]), int(.. 2024. 6. 17.
[파이썬] 백준 2609 최대공약수, 최소공배수 백준 2609 문제 풀이https://www.acmicpc.net/problem/2609풀이최대공약수와 최소공배수는 파이썬의 math 모듈의 gcd(), lcm() 함수로 구할 수 있다. 최대공약수란0이 아닌 두 정수 n과 m이 서로 공통으로 가지고 있는 약수 중 가장 큰 수를 말한다.약수란어떤 수를 나누어 떨어지게 하는 수6 은 1,2,3,6 이 약수두 수를 곱해서 어떤 수를 나오면 그 두 수가 약수최대 공약수 예시 : 12와 20인 경우12 : 1, 12, 2, 6, 3, 4 정렬하면 1, 2, 3, 4, 6, 1220 : 1, 20, 2, 10, 4, 5 정렬하면 1, 2, 4, 5, 10, 20같은 약수중에 제일 큰 것은 4. 최대공약수는 4☞ 참고 사이트 최대공약수 - 위키백과, 우리 모두의 백.. 2024. 6. 16.
백준 1003 피보나치 함수, 다이나믹 프로그래밍 DP (with 파이썬) 피보나치 수열 알고리즘 문제 풀이▶ 백준 문제풀이 1003https://www.acmicpc.net/problem/1003피보나치 수열이란연속한 두 수의 합이 그다음 수가 되는 수열{0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... }재귀적으로 표현 가능Fn = Fn-1 + Fn-2 또는 Fn+1 = Fn + Fn-1단, F0 = 0, F1 = 1참고 사이트 피보나치 수열Fibonacci Numbers, 피보나치 수www.ktword.co.kr다이나믹 프로그램이란답을 재활용 하는 방법앞에서 구했던 답을 뒤에서도 이용하고, 옆에서도 이용하고...엄밀히 말해 동적 계획법은 구체적인 알고리즘이라기보다는 문제해결 패러다임에 가깝다.이미 구했던 값은 메모리에 담아두고 필요시 메모리에서 값을.. 2024. 6. 13.
파이썬 윤년 계산하기 (with 백준 2753) 파이썬 윤년 계산은 calendar 모듈의 isleap() 함수 사용한다.calendar.isleap(year)year 윤년이면 True, 아니면 False 반환import calendar as cdy = int(input()) #년도 입력 yyyyif (cd.isleap(y)): #윤년이면 True 반환 print(f"입력한 연도는 윤년입니다.: {cd.isleap(y)}")else: #윤년이 아니면 False 반환 print(f"입력한 연도는 윤년이 아닙니다.: {cd.isleap(y)}") isleap() 함수를 사용하지 않고 직접 계산하여 윤년 계산할 수 있다.이는 백준 2753 문제 풀이로 연습. ▶ 윤년 연습 백준 문제 풀이https://www.acmicpc.net/problem/2.. 2024. 6. 7.