Python

알고리즘/백준(BOJ)

[백준/파이썬] 12852번 1로 만들기 2

https://www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net DP문제이다. 여느 DP문제가 그렇듯, 탑다운이 아니라 바텀업으로 풀어야한다. 이 문제의 점화식은 아래 3가지 조건을 만족해야한다. 점화식을 f(x)라 하자. 1. f(x) = f(x-1) + 1 --> 1을 더해서 만드는 경우 2. if x % 3 == 0, f(x) = f(x/3) + 1 --> x가 3으로 나눠질 때 3. if x % 2 == 0, f(x) = f(x/2) + 1 --> x가 2로 나눠질 때 ※ 여기서 더하기 1은 경우의 수가 하나 증가함을 의미한다!! 예를 들어 설명해보자면, 우..

알고리즘/백준(BOJ)

[백준/python] 15684번 사다리 조작

https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 구현 + 백트래킹 + 브루트포스 문제다. 사다리의 가로줄과 세로줄을 각각 x좌표 y좌표라고 생각하고 풀면 편할 것이다. 우선 입력을 받으면서, 가로선이 그려진 좌표를 표시해준다. (가로선이 그려질 때 (x,y)와 (x,y+1)를 잇게 되는데, 이 두 좌표를 모두 1로 표시하고 푸는 방법도 있으니 참고!) 그리고나서 탐색을 시작하는데, 매 탐색마다 i번 라인에서 출발하여 도착 결과가 i번 인지 확..

알고리즘/백준(BOJ)

[백준/파이썬] 18185번 라면 사기(small)

https://www.acmicpc.net/problem/18185 18185번: 라면 사기 (Small) 라면매니아 교준이네 집 주변에는 N개의 라면 공장이 있다. 각 공장은 1번부터 N번까지 차례대로 번호가 부여되어 있다. 교준이는 i번 공장에서 정확하게 Ai개의 라면을 구매하고자 한다(1 ≤ i www.acmicpc.net 티어에 비해 쉽게 풀렸던 문제이다. 이 문제의 핵심 알고리즘은 "갯수 당 가격"이 가장 큰 3원을 사용하는 연산의 횟수를 최소화하고, 그 경우 중에서도 5원을 사용하는 횟수를 최소화하는 것과 arr[i+1]번째 값과 arr[i+2]번째 값의 비교이다! -> 만약 [1,2,1,1] 과 같이 주어졌다고 하자. 당연히 3개씩 묶어서 사는게 이득이므로 1번째와 2번째, 3번째에 있는 라..

알고리즘/백준(BOJ)

[백준/Python] 2588번 곱셈

https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 파이썬으로 주 사용언어를 바꿔보려고 한다. (사실 C++도 애착이 깊은 언어라, 둘 다 잘하고 싶은 마음이 크다) 그래서 백준에 있는 파이썬 길라잡이 문제집을 통해 파이썬을 연습하는 중이다. 두 정수를 int형이 아닌 str형으로 받아서 인덱스를 이용해 곱하기 해주면 금방 풀리는 문제이다. import sys a = input() b = input() ans=0 ans = int(a) * int(b[2]) print(ans) ans = int(a) * int(b[1]) print(ans) ans = i..

파이썬

파이썬 - data handling

CSV, HTML, XML, JSON 데이터에 대해 알아보겠다. ​ 1. CSV : comma separate values 쉼표로 구분한 텍스트 파일 엑셀 양식의 데이터를 프로그램에 상관없이 쓰기 위한 데이터 형식! 탭으로 구분 = TSV, 빈칸으로 구분 = SSV 등등이 있는데, 통칭하여 CSV로 부른다! 엑셀에서 "다른 이름으로 저장" 기능을 활용하여 만들 수 있다. ​ 파이썬으로 CSV 파일 읽기/쓰기 -> 앞서 포스팅한 file handing에서 소개한 모듈, 함수 등을 이용하면 된다! CSV는 쉼표로 구분된 파일이므로 한 줄씩 읽어올 때 유의할 점이 있다. 쉼표를 포함하여 읽어오므로 이를 없애주는 전처리 과정이 필요하다! -> 직접 코드로 할 수도 있지만, 파이썬에서는 CSV 파일 처리를 위한 ..

파이썬

파이썬 - File / Exception / Log Handling

프로그램을 짤 때는 예상치못한 여러 일들이 일어난다. ex) 주소 입력하지 않고 주문 ​ 1. exception 1. 예상 가능한 것 (인터럽트와 유사) -> 주소를 입력하지 않을 수 있으니 주소가 빈칸이 되는걸 막자! ​ 2. 예상 불가능 한 것 (트랩과 유사) -> 리스트 범위 초과, 0으로 나누기 등등 -> exception handing 필요! ​ try ~ expect 문법 (try ~ catch 라고도 한다) for i in range(10): try: res = 10 // i; except ZeroDivisionError: print("Not divided by 0"); if문과 유사하지만, 에러를 잡고나서 프로그램을 종료하는 것이 아니라 예외처리 후 계속 실행할 수 있다는 장점이 있다. 그..

beomseok99
'Python' 태그의 글 목록 (4 Page)