파이썬

Algorithm

백준 No.11053 : 가장 긴 증가하는 부분 수열(LIS) [파이썬]

가장 긴 증가하는 부분수열(LIS) DP 문제이다. 풀이 방법을 그림으로 자세히 보려면 아래 블로그를 참고하면 된다. https://bitwise.tistory.com/215 포스팅 목적은 풀이 방식을 코드로 표현한 부분이 잘 이해가 되지 않아서 시작하게 되었다. # 그림 설명 1. 입력값 배열에 맞는 DP 배열을 처음에 1 값으로 모두 세팅을 해둔다. 2. 입력값 배열과 DP 배열을 이용해서 조건에 맞는 부분만 카운트를 증가시켜 준다. (여기서 말하는 조건 : 이전 값들과 비교해서 자신이 크면 작은 값들의 DP값 중 가장 큰 값에 +1 한 값을 갖는다.) 3. 좌측 부터 우측으로 입력값 배열을 하나씩 보며 넘어감 (예를 들어 입력값 배열의 값이 동그라미 친 '20' 인 경우) 20의 좌측 값들 중 20..

Python

분기 속 분기 구분 및 체크의 중요성(분기문)

이 포스팅은 분기문 안에 있는 또 다른 분기문에서 else나 return 등을 이용해 구분을 해주지 않고 왜 오류가 나는지에 대해 한참 고민하다 조언을 듣고 유레카를 외친 경험으로 인해 생겨나게 됨. 우선 분기문에 대해 짚고 가자 분기문이란 파이썬 분기문은 프로그램 중 참(True) 또는 거짓(False)을 반환하는 조건식의 결과에 따라 프로그램을 어떠한 경로로 실행할지 를 결정하는 문이다. 0이 아니거나, null이 아닐 경우에 참(True) 값으로 판단하며, 그 반대의 경우에는 거짓(False) 값으로 판단한다. 그림으로 표현하면 아래와 같다. 개념을 자세히 보지 않았던 탓일까 이런 실수를 하고 말았다. 위 코드는 얼핏 보면 elif 'empty' in command : command 안에 'empt..

Algorithm

백준 1011번 풀이(파이썬)

www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 문제 이해하는데 한참걸렸다. 결국 구글링해서 무슨뜻인지 알아냈고 많은 분들의 포스팅을 보고 규칙을 확인하였다. 문제에서 조건상 가장 마지막 이동거리는 1로 고정적으로 들어가야 한다고 했다. 문제에서 이동거리를 한번에 늘릴수도 줄일수도 없게 설정이 되어있다. 무조건 한칸씩 늘리거나 줄이란다. (+1 or -1) 그래서 거리좀 벌린다 싶으면 다시 줄여야 하는 포물선같은 ..

Algorithm

백준 11729번 : 통곡의 하노이 탑 (feat. python)

BOJ No11729 : 하노이의 탑 이동 순서(파이썬) 과장 없이 이 문제만 하루 종일 10시간 정도 본 것 같다... 아직도 혼자서 처음부터 풀면 막히지만 계속하다 보면 언젠간 이런 종류의 재귀 함수 문제를 술술 풀 수 있는 경지에 오를 날이 오리라 믿으며 포스팅을 한다. 하노이탑 규칙에 대한 이해는 아래 "파이썬클래스" 님의 영상으로 도움받았다. www.youtube.com/watch?v=FYCGV6F1NuY 정답으로서 활용된 코드 def hanoi(n, a, b): if n > 1: hanoi(n-1, a, 6-a-b) # 기둥이 1개 이상이면 그룹으로 묶인 n-1개 원판을 # 중간으로 먼저 다 옮긴다 print(a, b) if n > 1: hanoi(n-1, 6-a-b, b) n = int(in..

Python

Python(6) - 반복문(while, for, break, continue)

반복문(Repetitive Statement)이란? 문장을 반복적으로 수행 정해진 동작을 반복하여 처리할 때 사용 파이썬에서 제공하는 반복문 > while 문 ▶ 어떤 조건이 만족하는 동안 문장을 수행하고 만족하지 않는 경우 수행 중단 ▶ while 문 기본 문법 >> 활용 예시 ▶ while문 예제 ① - 1부터 10까지 반복해서 출력하는 프로그램을 만들어라. - 3번째 줄[print(i)] 에서 끝내버리면 i는 계속 1이기 때문에 무한대로 출력이 된다. - 4번째 줄은 i + 1 = i 의 표현 연산 식이고 3번째 줄에서 i를 출력하고 4번째 줄에서 1을 더하고 계속 누적 반복된다. - 10이라는 숫자에 도달할 때까지 ▶ while문 예제 ② - 1부터 10까지의 값을 더하는 프로그램을 만들어라. :..

Python

Python(5) - 조건문 알아보기(If, else, elif, pass)

조건문(Conditional Statement)이란? 조건에 따라 문장을 수행한다. 주어진 조건을 판단하고 상황에 맞는 처리가 필요할 때 사용한다. 파이썬에서 제공하는 조건문 > If 문 ▶ If 문은 True와 False를 판단하는 조건문이다. ▶ If 조건 뒤에는 반드시 콜론( : ) 이 들어가야 한다. ▶ If 문 기본 문법 형태 if의 이 True(참)이라면 을 수행하라 > 활용 예시 ▶ if 문을 이용한 미세먼지 측정 미세먼지 농도 pm 35 초과는 미세먼지 농도 나쁨 > If - else 문 ▶ else 문 뒤에는 반드시 콜론( : ) ▶ if-else 기본 문법 형태 if 의 이 True이면 을 수행하고, False 이면 else의 를 수행하라 > 활용 예시 ▶ if-else 문을 이용한 미..

Python

Python(3) - 문자열 포맷팅(%, format, f-string)

% formatting 연산자와 포맷 스트링을 사용하는 방법이며, 초기에 사용되던 오래된 방식이다. 대표적인 포맷 스트링의 종류에는 3가지가 있으며 %d(정수), %s(문자), %f(실수) 이다. 양식 : "%d" %(정수) / "%s" %(문자) / "%f" %(실수) 단점 : 타입을 정확히 알고 사용해야하며, 문자열이 길어지면 문장이 지저분해진다. str.format( ) Python3 지원되는 방법이며 {} 괄호를 이용한 포맷팅 방법이다. %와 동일한 기능지원, 변수 타입과 상관없이 괄호만 잘 이용하면 된다. 양식 : "{ }" .format( ) f-string Python3.6 이상 버전에서 지원하는 방법이며 이전 방식들에 비해 상당히 간편해졌다. 양식 : f "{인자}"

개발늦둥이
'파이썬' 태그의 글 목록