본문 바로가기

코테12

[파이썬] 백준 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.
파이썬 중복제거 set 집합함수 (with 백준 2776) set() 함수 사용 중복제거를 하고 싶을 때, set() 함수를 사용한다.set(i) 함수는 집합으로 만들어주는 함수이며 i의 값은 iterable 형식을 집합 객체로 반환해 준다.이때 iterable 형식은 딕셔너리의 키나 집합의 멤버로 사용할 수 있는 객체여야 한다.#list 를 set() 로 변환하면 집합으로 반환하면서 중복제거한다.a = [2,1,3,4,5,5,6,7,3]print(a) # [2, 1, 3, 4, 5, 5, 6, 7, 3]print(len(a)) # 9print(set(a)) # {1, 2, 3, 4, 5, 6, 7}print(len(set(a))) # 7b = ['lee', 'yun', 'park', 'yun', 'bang', 'lee']print(b) # ['lee', 'yu.. 2024. 5. 29.
파이썬 Counter (with 백준 10815, 10816) Counter() 객체 편리하고 빠르게 개수를 세도록 지원하는 계수기 도구 제공collections 모듈의 Counter() 객체 선언하여 사용한다. ex) from collections import Counterfrom collections import Countercnt = Counter()for word in ['yun', 'Lee', 'yun', 'bang', 'Lee', 'Lee']: cnt[word] += 1print(cnt) # Counter({'Lee': 3, 'yun': 2, 'bang': 1})words = ['yun', 'Lee', 'yun', 'bang', 'Lee', 'Lee']cnt1 = Counter(words)print(cnt1) # Counter({'Lee': 3, '.. 2024. 5. 28.
파이썬 람다 함수 lambda (with 백준 1181) lambda (람다) 표현식 lambda 키워드로 함수로 사용할 수 있으며 일반적인 함수 정의의 편의 문법임.lambda a, b: a+b 와 같이 함수 객체가 있는 곳이면 어디나 lambda 함수가 사용될 수 있다. 제약 문법적으로 하나의 표현식으로 제한됨.함수명이 없고 단발성으로 사용됨.● 람다 (lambda) 함수 예시#list a에 0 ~ 4 의 거듭제곱 값 저장한다.a = []for i in range(5): a.append(i**2)print(a) # [0, 1, 4, 9, 16]#list a에 0 ~ 4 의 거듭제곱 값 lambda 함수로 저장한다.a = list(map(lambda i: i**2, range(5)))print(a) # [0, 1, 4, 9, 16] ● 정렬 예시a = .. 2024. 5. 27.
파이썬 정렬 sort, sorted (with 백준 2750, 5597, 1181) 파이썬 정렬은 sort(), sorted()를 사용한다. 내장함수 sort()이 메서드는 리스트 내 항목 간의 비교만 사용하여 정렬한다.정렬 후 리스트는 수정된 상태로 유지된다.반환값이 없다.리스트 타입만 사용 가능A = ['a', 'd', 'e', 'c', 'b']#sort() 는 반환값이 없다.print(A.sort()) # NoneA = ['a', 'd', 'e', 'c', 'b']A.sort()print(A) # ['a', 'b', 'c', 'd', 'e']B = ['가', '다', '바','나']B.sort()print(B) # ['가', '나', '다', '바']C = [3,2,1,11,4]C.sort()print(C) # [1, 2, 3, 4, 11]D = ['3','2','1','11','.. 2024. 5. 24.
파이썬 for while 조건문 (with 백준 2446, 2522) 파이썬 for , while 조건문은 아래와 같이 사용한다.for (조건문) :조건문 사용 예시#숫자인 경우N = 5for i in N: #문자열일때 사용 print(i) # TypeError: 'int' object is not iterablefor i in range(N): print(i, end=" ") # 0 1 2 3 4for i in range(0, N): print(i, end=" ") # 0 1 2 3 4#문자인 경우M = '일이삼사오'for i in M: print(i, end=" ") # 일 이 삼 사 오for i in range(M): #숫자일때 사용 print(i, end=" ") # TypeError: 'str' object cannot be interp.. 2024. 5. 23.