구현 : 머릿속의 알고리즘을 소스코드로 바꾸는 과정 *언어중 구현이 가장 쉽지만 시간이 길게 걸리는 python. c로 짤 수 있지만 python 코딩테스트 준비를 위해 python으로 작성할 예정 *사용할 언어 : python => int자료형의 데이터 개수에 따른 메모리 사용량을 고려해야한다. list길이(데이터 개수) 메모리 사용량 1,000(천) 약 4KB 1,000,000(백만) 약 4MB 10,000,000(천만) 약 40MB 참고해서 개발환경에 따라 list사용여부, 활용 방법 등을 생각해내야함. #구현 #상하좌우 => 좌표를 list로 만들어 넣고 x좌표가 1보다 작으면 안 되고 n을 넘을때부터 안 됨. y도 마찬가지로 생각. 나머지는 그냥 for문과 if로 간단히 처리 ''' n = in..
보호되어 있는 글입니다.

이것이 코딩테스트다 (연습문제 1/2 풀기 + 백준 문제 풀기) 이것이 코딩테스트다 1. 모험가 길드 2. 곱하기 혹은 더하기 3. 문자열 뒤집기 #모험가 길드 => 공포도가 x인 모험가는 반드시 명 이상으로 구성한 모험가 그룹에 참여해야함. 최대 몇개의 모험가 그룹? //28 ''' n = int(input()) num = list(map(int, input().split())) print(num) num.sort(reverse = True) list2= [] for i in range(0,n): cnt=0 while i
그리디 알고리즘이란? 현재 상황에서 지금 당장 좋은 것만 고리는 방법 = 탐욕적, 욕심쟁이 기법! = GREEDY! 현재상황에서 가장 좋아보이는 것을 선택해도 문제를 풀 수 있나?를 생각했을 때 그것이 성립하다면 GREEDY를 시도할 것! 기본적인 예제 1. 거스름돈 문제 => 최소 거스름돈의 개수 => 개수를 적게 만들기 위해서는 당연히 주는 동전의 단위가 커야함. => for문을 돌릴때 동전의 단위가 큰 것부터 걸리게끔 조건을 걸고 동전의 나머지가 0이 되는 순간 개수 출력 x = int(input()) cnt = 0 while x!=0: if x//500: print(x//500) cnt = cnt + x//500 x = x%500 if x//100: print(x//100) cnt = cnt + ..

www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진 www.acmicpc.net dfs, 인접리스트를 통해 쉽게 풀 수 있는데 촌수를 계속 저장을 시켜줘야함으로 list를 하나 더 만들어 함수에 촌수를 저장할 변수를 계속 넘겨주며 촌수관련 list에 넘겨줘야한다. 나는 어차피 check배열을 사용해야하기에, check배열에 촌수를 저장하였고 복잡함을 줄이기 위해 다른 list는 사용하지 않았다. *tip -1로 예외처리를 해줘야하기 때문에 코드를 돌리면서(for문을 돌리며) ..

www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net dfs -> 재귀를 통해 사용 dfs를 구현해 바이러스 문제를 풀 수 있다! dfs는 인접리스트를 작성한다는 것만 알면 쉽게 구현할 수 있다. 몰랐던 부분 list_ = [[0]*(n+1) for _ in range(n+1)]에서, 2차원 list설정시 list_ = [[0]*(n+1)]*(n+1)을 하면 각각을 객체로 인식해 list_[1][2]=1을 했을 때 모든 행의 1,2 인덱스를 1로 변환하는 문제가 발생 ..
lambda는 익명함수(이름이 없는 함수)를 사용하기 위해 이용됩니다. v = lambda 인수1, 인수2,.... : 식 => 람다뒤에 인수, 콜론 그리고 실행할 식을 기술합니다. #람다를 사용한 식 x2 = lambda x:x*2 #함수를 사용한 식 def x2: return x*2 lambda사용시, def와 return을 사용할 필요가 없다는 장점이있다. 1. map과 함께 사용 nums = [1,3,5,7,9] x2 = lambda x : x*2 a=list(map(x2,nums)) print(a) #map을 사용해 nums를 x2의 형식에 맞춰서 list형식으로 저장됨 #결과 : [2, 6, 10, 14, 18] map(function, iterable,...) 첫번째 인수 : 함수 오브젝트,..

데스크톱 앱이란? 윈도우나 맥 OS X 등에서 일반적으로 이용하는 계산기나 그림판 등의 응용프로그램을 데스크톱 앱이라고 한다. 파이썬 표준 라이브러리에 Tkinter을 통해 데스크톱 앱을 만들 수 있습니다. 데스크톱 앱을 'GUI앱'이라고 부르며 Graphical User Interface를 의미합니다. 마우스나 터치패널과 같은 장치를 활용해 화면에 그림으로 그려진 부분들을 조작하는 체계입니다. 메세지박스의 사용 import tkinter.messagebox as mb ans = mb.askyesno("질문", "오늘 계획을 잘 지켰나요?") if ans==True: mb.showinfo("good", "오늘 하루도 수고하셨습니다") else: mb.showinfo("bad","bbbbaaaaaaaaaa..
1. round(a,b) a값을 b자리까지 나타내겠다 -> b+1자리에서 반올림 2. reversed list(reversed(list[0]))을 통해 list[0]을 기준으로 뒤집어줌. =>list가 이차원일때 3. sorted와 sort -sorted result = sorted(a_list,reverse=true) result값에 return value -sort sort(a_list,reverse=true) sort의 경우, return value가 없고 자체가 정렬됨 4.random import random random_num = random.randint(-100,100) #-100에서 100까지 무작위추출 5. 이차원 list를 한줄로 만들 때 one_d_list = sum(my_list,[..
다이나믹 프로그래밍 이중for를 이용해 i값을 증가시켜주며 그 전의 값중 작으면서도 가질 수 있는 개수가 가장 큰것을 찾아 개수를 초기화 => 이용하는 값이 배열에 이미 저장된 값이라는 것에서 동적계획법인 다이나믹을 활용하면 됨. www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net #가장 긴 증가하는 수열 n = int(input()) list1 = []#입력받은 수 array = [..
- Total
- Today
- Yesterday
- DRF 회원관리
- 백준 10866
- 소프트웨어공학설계
- c++덱
- 영화 리뷰 긍정 부정 분류
- 파이썬 알아두면 유용
- CSMA/CD란?
- 백트래킹(1)
- LAMBDA
- 핀테크 트렌드
- 기사작성 대외활동
- 온라인프로필 만들기
- 시뮬레이션 c
- 딥러닝입문
- 코딩월드뉴스
- 스택 파이썬
- 4963 섬의개수
- 13886
- 11053 백준
- 10866 백준
- 백준 4963
- 백준 15650 파이썬
- 백준 숫자놀이
- stack 컨테이너
- 효율적인방법찾기
- 백준 11053 파이썬
- mm1queue
- 모듈 사용법
- CREATE ASSERTION
- 기본 텍스트 분류
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |