본문 바로가기
반응형

스파르타코딩14

[백준] 카드2 2164 (파이썬) 코드 큐 자료구조를 이해하면 쉽게 풀 수 있는 문제 # 카드2 from collections import deque n = int(input()) q = deque() for i in range(n): q.append(i+1) while len(q) > 1: if (len(q) == 2): q.popleft() break q.popleft() # 제일 위에 있는 카드를 바닥에 버린다 q.append(q.popleft()) # 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. print(int(q.pop())) # 마지막에 있는 카드를 뽑는다. 2021. 3. 12.
[백준] 회전하는 큐 1021 (파이썬) 문제 풀이 # 예제2 해석 # 1번 연산: 앞에 있는 것 빼기 (data.popleft()) # 2번 연산: 왼쪽으로 밀기 (data.append(data.popleft())) # 3번 연산: 오른쪽으로 밀기 (data.appendleft(data.pop())) n,m = 10, 3 value = [2,9,5] # 뽑아 내려는 수가 2 9 5 일 때 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 2 수행 후 2, 3, 4, 5, 6, 7, 8, 9, 10, 1 # 1 수행 후 3, 4, 5, 6, 7, 8, 9, 10, 1 # 3, 3, 3 수행 후 9, 10, 1, 3, 4, 5, 6, 7, 8 # 1 시행 후 10, 1, 3, 4, 5, 6, 7, 8 # 2,2,2,2 or 3,3,3,.. 2021. 3. 10.
[백준] 나무자르기 2805 (파이썬) 이진탐색 문제 입력 받아야 할 값과 데이터가 크기 때문에 이진탐색을 고려하였다. 입력 값을 빠르게 받기위해 sys.stdin.readline().rstrip() 함수를 사용한다. 시간 초과가 날 경우 pypy를 이용한다. 예 아니오로 나눌 수 있는 파라메틱 서치 문제는 재귀적으로 하는 것보다 반복문으로 푸는 것이 더 깔끔하다. # 예 아니오로 나눌 수 있는 파라메틱 서치 문제는 재귀적으로 하는 것보다 반복문으로 푸는 것이 더 깔끔하다. import sys n , m = list(map(int,sys.stdin.readline().rstrip().split())) # 나무 개수 n, 필요한 나무 길이 m array = list(map(int,sys.stdin.readline().rstrip().split(.. 2021. 3. 9.
[백준] 좌표 정렬하기2 11651 (파이썬) 람다 표현식과 key를 알고 있다면 풀수 있는 문제였다. 정렬에서 key의 의미 # key 매개변수 입력 key값으로는 함수가 들어가야 하며 이는 정렬 기준이 된다. # key 값은 람다(lambda 함수를 사용할 수 도 있다) array= [('바나나',2), ('사과',5), ('당근',3)] def setting(data): return data[1] result = sorted(array, key=setting) print(result) 람다 표현식(Lambda Express) 특정한 기능을 수행하는 함수를 한 줄에 작성할 수 있다 람다식은 파이썬의 정렬 라이브러리를 사용할 때, 정렬 기준(Key)을 설정할 때에도 자주 사용한다. def add(a, b): return a + b print(add.. 2021. 3. 9.
[Python] 코딩테스트에 필요한 파이썬 문법 정리 자료형 수 자료형 정수형 실수형 #소수부가 0일 때 0을 생략 a = 5. # 5.0 # 10억의 지수 표현 방식 (최단 경로문제에서 자주 사용) a = 1e9 # 100000000.0 # 컴퓨터는 2진수 체계이기 때문에 실수 덧셈을 정확히 하지 못한다. 보통 5째 자리에서 반올림 하면된다. a = 0.3 + 0.6 print(rount(a,4)) 수 자료형의 연산 a = 7 b = 3 # 나누기 a / b # 나머지 a % b # 몫 a // b # 거듭 연산자 a ** b # a의 b승 리스트 자료형 리스트 초기화 a = [1,2,3,4,5,6,7,8,9] print(a) print(a[4]) # 빈 리스트 선언 방법 a = list() a = [] # 크기가 N이고 모든 값이 0인 1차원 리스트 초.. 2021. 3. 8.
[백준] [재귀 분석 추가] 하노이의 탑 이동 순서 1759 (파이썬) def hanoi(n, a, b): n > 1: hanoi(n-1, a, 6-a-b) # 기둥이 1개 이상이면 그룹으로 묶인 n-1개 원판을 중간으로 먼저 다 옮기겠다 1, 2, 3이기 때문에 중간은 1,3을 뺀 값 print(a,b) # n번 째 기둥이 a -> b 로 옮겨짐 n > 1: # 기둥이 한개 이상이면 남은 기둥 (n-1)개를 중간에서 b로 옮기겠다. hanoi(n-1, 6-a-b, b) n = int(input()) print(2 ** n-1) # 총 이동해야하는 횟수 hanoi(n, 1, 3) # 3개 원판을 기둥 1에서 3으로 옮기겠다 재귀함수 개념 2021.03.08 - [Algorithm & Data structure] - 재귀 함수 재귀 함수 재귀 함수(Recursive Funct.. 2021. 3. 8.
[알고리즘] 재귀 함수 재귀 함수(Recursive Function) DFS와 BFS를 구현하려면 재귀 함수도 이해하고 있어야한다. 자기 자신을 다시 호출하는 함수 팩토리얼 예제 # 반복적으로 구현한 n! def factorial_interative(n): result = 1 # 1부터 n까지의 수를 차례대로 곱하기 for i in range(1,n+1) result *= i return result # 재귀적으로 구한 n! def factorial_recursive(n): if n [백준] 하노이의 탑 이동 순서 1759 (파이썬) def hanoi(n, a, b): n > 1: hanoi(n-1, a, 6-a-b) # 기둥이 1개 이상이면 그룹으로 묶인 n-1개 원판을 중간으로 먼저 다 옮기겠다 1, 2, 3이기 때문에 중.. 2021. 3. 8.
[백준] 암호 만들기 1759 (파이썬) import itertools import sys l, c = map(int,sys.stdin.readline().rstrip().split()) secret = sorted(list(sys.stdin.readline().rstrip().split())) data = ('a', 'e', 'i', 'o', 'u') for x in list(itertools.combinations(secret, l)): count = 0 for i in data: if i in x: count += 1 if count >= 1 and l - count >= 2: # 자음이 2개 이상이란 것을 고려하지 않았었다. print(''.join(x)) # 출력 초과 왜 그러지? 조합 값이 l이 아닌 4를 넣었다. itertools라.. 2021. 3. 8.
[백준] 소수 구하기 1929 (파이썬) # 소수 구하기 분류 # 시간 제한메모리 제한제출정답맞은 사람정답 비율 # 2 초256 MB92626260761851427.337% # 문제 # M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. # 입력 # 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. # 출력 # 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. # 예제 입력 1 # 3 16 # 예제 출력 1 # 3 # 5 # 7 # 11 # 13 import math m,n = map(int, input().split()) array = [True for i in range(n+1)] #[True] * n+1 array[0.. 2021. 3. 8.
[백준] ACM 호텔 10250 (파이썬) # 문제 # ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. # 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한.. 2021. 3. 8.
[백준] 달팽이는 올라가고 싶다 2869 (파이썬) # 문제 # 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. # 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. # 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. # 입력 # 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) # 출력 # 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. # 예제 입력 1 # 2 1 5 # 예제 출력 1 # 4 # 예제 입력 2 # 5 1 6 # 예제 출력 2 # 2 # 예제 입력 3 # 100 99 100000000.. 2021. 3. 8.
[백준] 단어공부 1157 (파이썬) # 단어 공부 분류 # 시간 제한메모리 제한제출정답맞은 사람정답 비율 # 2 초128 MB88983343162773338.828% # 문제 # 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. # 입력 # 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. # 출력 # 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. # 예제 입력 1 # Mississipi # 예제 출력 1 # ? # 예제 입력 2 # zZa # 예제 출력 2 # Z # 예.. 2021. 3. 8.
[항해99][WID] 1주차 회고 (3.1 ~ 3.7) 항해 99 부트캠프 3월 1일 ~ 6월 7일 (99일) 9시 ~ 23시 공부 Today I learned 유투브 동영상 업로드 https://www.youtube.com/playlist?list=PLZeXlrZjgVUVXQUzXCp1GC9_eZdMr40MD Daily Study www.youtube.com 0일 99일동안 하루를 어떻게 보낼지에 대한 계획을 작성 1일 프로젝트 (do trip) (월~ 목) 조장을 맡아서 ui설계, 테이블구성, api설계 역할 분담 나 로그인, 회원가입, 공통적으로 쓰는 파일 (네이게이션바, 인클루드파일) + 메인 페이지 조원1 리뷰 등록페이지, 리뷰 수정페이지 조원2 리뷰 상세조회페이지 To do 깃허브 레파지토리를 만들고 조원들을 초대 프로젝트 환경 셋팅 쿠키/세션에 .. 2021. 3. 7.
[Project] Dotrip 여행 리뷰 프로젝트 프로젝트 특징 쿠키/세션 방식으로 로그인을 구현 및 JWT 인증 방식으로 전환 Jinja2 템플릿 엔진을 이용한 서버사이드 렌더링 restful api 방식 설계 개요 명칭 : Dotrip 개발 인원 : 3명 (고성빈, 김연재, 노유진) 개발 기간 : 2021.03.01 ~ 2021. 03. 04 (4일) 주요 기능 : 회원가입, 로그인, 리뷰 CRUD 개발 언어 : html, css, javascript, python 개발 환경 : flask web framework 데이터베이스 : mongodb 형상관리 툴 : git 간단 소개 : 여행 리뷰를 올리는 커뮤니티 github url github.com/seongbinko/dotrip seongbinko/dotrip Contribute to seongbi.. 2021. 3. 1.
반응형