목록CS/Algorithm (10)
CS log
재귀 함수란?: 어떤 함수에서 자신을 다시 호출하여 작업을 수행하는 방식의 함수를 의미반복문을 사용하는 코드는 항상 재귀 함수를 통해 구현하는 것이 가능하며 그 반대도 가능코드가 간결하고 이해하기 쉽다. 특정 유형의 문제(트리, 그래프 탐색 등)에 매우 적합함반복적인 스택의 사용으로 인해 메모리 및 속도에서 성능 저하가 발생할 수 있음 예시 def factorial(n): if n즉, 재귀 문제를 풀 때는 항상 base case와 recursive case로 경우를 나누어 주어야 함base case : 더 이상 자기 자신을 호출하지 않고, 직접 결과를 반환하는 조건 꼬리 재귀 (taili recursion)함수 호출의 결과로 반환되는 값에 함수 인자를 직접적으로 포함시키는 방식으로 구현재귀로 구현하고 ..
📍문제https://www.acmicpc.net/problem/1018지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다.체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다.보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 8×8 크기의 체스판으로 잘라낸 ..
words = input() only_words = words.split(' ') sum =0 for i in only_words : if bool(i) : sum+=1 print(sum) split() : 어디서 문자열을 끊을 지 알려주는 것인데, 괄호안에 아무 것도 없으면 공백 단위로 나눈다. 단어를 공백으로 끊어서 여러 개 입력했을때 리스트에 그 단어들이 하나씩 그대로 들어감 그리고 리스트의 길이를 출력하면 단어의 개수가 출력됨 bool() : 참, 즉 단어가 있으면 (blank가 아니면) 더 간단한 풀이 x = list(map(str,input().split())) print(len(x)) map() 사용법 a = [1.2, 2.5, 3.7, 4.6] >>> for i in range(len(a)..
1. 아스키코드란? : 미국 ANSI(미국 국가 표준 협회)에서 표준화한 정보교환용 7비트 부호체계 2. 문자를 아스키코드로 변환하기 : ord(문자) → 아스키코드 값 출력 letter = input() #input값으로 A를 받는다. print(ord(letter)) >>> 65 # 문자A에 해당하는 아스키코드 값 출력 3. 숫자를 아스키코드로 변환하기 : chr(숫자) → 아스키코드 값 출력 number = input() #input값으로 8을 받는다 print(ord(number)) >>> 56 # 숫자8에 해당하는 아스키코드 값 출력