코딩테스트
[패스트캠퍼스] Spring 강의 수강 후기
항상 안드로이드 네이티브 앱을 주로 개발했었는데, 최근 API 서버를 구축해보는 경험을 해보고 백엔드 개발에 관심이 생겼다. 인강을 보면서 공부해보면 더 빠르게 학습할 수 있을 것 같아 백엔드 웹 개발 관련 인강을 알아보던 중에 정부에서 시행중인 내일배움카드를 이용하면 자부담 5만원으로 인강을 들을 수 있다는걸 알게되었다. 자부담금도 수료하면 환급가능하다 해서 완전 괜찮을것 같다 생각이 들어 이것 저것 알아보기 시작했다. 내일배움카드를 이용해서 들을 수 있는 백엔드 강의 중에 한번쯤은 들어봤을 법한 메이저 인강업체의 강의들이 꽤 있었는데, 커리큘럼을 체크해보니 나는 패스트 캠퍼스의 스프링쪽 커리큘럼과 난이도가 마음에 들어서 결제해 수강했고 드디어 오늘 수료 했다. 강의는 8주 짜리 커리큘럼으로 구성되어 ..
[코딩테스트][파이썬] 재귀함수 깊이제한 setrecursionlimit
코딩테스트에서 재귀 함수를 사용해 알고리즘을 해결해야 하는 문제를(BFS 등) 풀다 보면 작성한 알고리즘에는 문제가 없지만 깊이 제한 문제가 발생해 알 수 없는 에러를 뿜어대며 테스트 케이스를 통과하지 못하는 경우가 있다. 파이썬에서 재귀 함수 깊이 제한은 1,000이며 sys.setrecursionlimit(횟수)를 이용해서 늘여줄 수 있다. import sys sys.setrecursionlimit(10**6) 재귀함수 문제를 풀 때는 꼭 위 코드를 써놓자.
[코딩테스트][파이썬] 소수 구하기
소수 1과 자기만으로 나누어 떨어지는 1 보다 큰 양의 정수를 의미한다. 예) 2, 3, 5, 7, 11, 13, 17, 19 참고 : https://terms.naver.com/entry.naver?docId=1113970&cid=40942&categoryId=32206 소수 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수. 이를테면, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31,… 등은 모두 소수이다. 4 = 22, 6 = 2 × 3, 16 = 24 … 등, 소수가 아닌 자연수를 합성수(合成數)라 terms.naver.com 파이썬으로 구현하기 소수를 이해하기는 쉽지만 이것을 코딩으로는 옮기기 쉽지는 않다. 여러가지 방법이 있으나 가장 간단한 방법은 반복문을 이용해..
[코딩테스트][파이썬] 백준 1181, 단어정렬
문제 알파벳 소문자가 n개 주어진다. n개의 소문자를 길이순으로 정렬하되 길이가 같으면 사전순으로 정렬하여 출력하시오. 단, 중복된 단어는 한 번만 출력한다. 풀이과정 백준의 solved 브론즈 문제들은 보통 정렬 기준이 하나였기 때문에 간단히 sort나 sorted로 별도 조건 없이 해결할 수 있었다. 실버 5에서부터는 정렬의 조건이 두 가지인 문제가 등장해서 정렬에 대해서 공부하고자 기록에 남기기로 했다. 본 문제는 3가지로 풀 수 있다. 1. cmp_to_key를 이용해서 정렬 기준을 커스텀해서 풀기 함수로 compare_chr(a,b)로 정렬 기준을 정의해 주고 sort(key = )에 정렬 기준을 넣어준다. # 956ms from functools import cmp_to_key def comp..
[파이썬] 팩토리얼 !, 계승
팩토리얼(Factorial) 계승이라고도 한다. 1부터 양의 정수 n까지를 모두 곱한 것으로 ! 기호를 사용해서 n! 라고 표현한다. 1! = 1 + (1-0)! 이기 때문에 0! = 1 임을 기억하여 코딩하여야 한다. 아래 링크에서 팩토리얼에 대해 설명되어 있으니 참고하면 좋을 것 같다. 느낌표가 수학 기호로도 쓰일까? - 네이버 지식백과 느낌표가 수학 기호로도 쓰일까? [ 1. 느낌표 모양의 수학 기호] 컴퓨터 키보드에서는 글자와 숫자 말고도 신기한 모양의 문자들을 볼 수 있어. 혹시 그중에서 수학 기호가 아닐까 하고 의심해 본 모양은 없니? 찌롱이가 수학 기 terms.naver.com 파이썬 팩토리얼 예제 파이썬에서는 math 라이브러리로 팩토리얼을 지원하기 때문에 아래와 같이 간단히 사용할 수 ..
[파이썬] 최대공약수와 최소공배수
1. 공약수 두 개 이상 자연수의 공통된 약수를 의미한다. 12의 약수 1, 2, 3, 4, 6, 12 15의 약수 1, 3 5, 15 공약수 1, 3 2. 최대공약수 공약수 중 가장 큰 약수를 의미한다. 각 자연수의 약수를 구해 가장 큰 공약수를 찾거나, 두 수를 공통으로 나눌 수 있는 소수로 나눈 뒤 몫 부분의 곱(a*b*c*...*n-1*n) 을 구해 최대공약수를 찾을 수 있다. 3 ) 12 15 4 5 - 12의 최대 공약수는 3이다. 3. 파이썬에서의 최대공약수 예제 import math def gcd(n) : lst_n = set() for i in range(1, n+1) : if n % i == 0 : lst_n.add(i) return lst_n a, b = map(int, input()..
[파이썬] 문자열 포맷팅 Formatting
문자열 포맷팅 (Formatting) 정수, 실수 등 여러 형(Type)의 변수를 사용해 문자열을 편하게 만들거나 출력(Print) 하고 문자열을 꾸미기 위해 문자열 형식화(Formatting)를 사용한다. 파이썬에서는 3가지 방법으로 Formatting 할 수 있다. 1. % 기호를 사용한 방법 형식 지정 문자 영문 자료형 %s string 문자열 %d digit 정수 %f float 실수 %o octal 8진수 %x hexadecimal 16진수 %% percent % 기호를 사용한 Formating 방법은 '%d' % 변수명 형태로 사용한다. 따옴표 ('') 안에 넣고 싶은 문자열과 %형식 지정 문자(위의 표 참고)를 사용해 넣을 변수들의 위치를 지정해 주고 % 변수명에 사용할 변수명을 넣어준다. ..
이코테 6강 리뷰 (기본 입출력)
기본 입출력 모든 프로그램은 약속된 입출력 양식을 가진다. 프로그램 동작의 첫 번째 단계는 데이터를 입력 받거나 생성하는 것 예) 학생의 성적 데이터가 주어지고 이를 내림차순으로 정렬한 결과를 출력하는 프로그램 자주 사용되는 표준 입력 방법 - input() : 한 줄의 문자열을 입력 받는 함수 - map() : 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용 n = input() # input은 문자열 입력받은 대로 출력함. 그것을 map()이나 split() 등으로 정수형이나 실수형 등 필요한 원소로 변환하는 것임 n = int(input()) # input 받은 값을 정수형으로 n 변수에 삽입 # 예시) 공백을 기준으로 구분된 데이터를 입력 받을 때 data = list(map(int, i..