Python(6)
-
[Python] n진법 변환
[Python] n진법 변환 알고리즘 문제풀이를 하다가 3진법 변환의 문제를 만났다. 해당 경우 기존 진법의 정의를 사용하여 변환하였으나 파이썬에는 유용한 진수 변환 메서드들이 존재하기에 이를 정리하기 위해 글을 작성하게 되었다. 기수법 - 위키백과, 우리 모두의 백과사전 (wikipedia.org) 기수법 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 진법은 여기로 연결됩니다. 군사 용어에 대해서는 진법 (군사) 문서를 참고하십시오. 기수법(記數法, numeral system)은 수를 시각적으로 나타내는 방법으로, 기수 ko.wikipedia.org 10진수 → n진법 10진법의 수를 x진법으로 변환할 때 쓰는 방법이다. 첫번째는 while문을 돌려 주어진 n이 0이 될 때까지 ..
2022.11.24 -
[Python] 파이썬 with이란?
최근 크롤링을 공부하던 중에 with 구문이 자주 보여서 정리를 하려 한다. with이란? 파일을 통한 작업을 진행할 때 파일을 한번 열었으면 이제 작업을 하고 나서는 열었던 파일을 저장하고 닫아(close) 줘야 한다. close가 되지 않는다면 해당 파일은 계속 열려있는 상태로 다른 프로그램에서는 접근이 불가능하다. 이런 상황을 막기 위해 close를 잊지말고 사용해야한다. 다만 우리가 코드를 작성하고 코드를 진행하며 오류가 생기거나 우리가 close의 작성을 빼먹는 경우도 존재한다. 이런 경우를 막기위해 사용하는 것이 with 구문이다. - with 구문은 해당 구문이 실행이 되었을 때 오류의 유무에 상관없이 마지막에 close를 해준다. 구문의 형태 with as : 실행1 실행2 with의 ex..
2022.09.12 -
[Python] 백준 알고리즘 1302번 - 베스트셀러
[Python] 백준 알고리즘 1302번 - 베스트셀러 문제 출처: https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 접근 방법 딕셔너리의 키와 값을 이용하여 접근 , sorted 메서드 정렬을 통해서 문제를 풀이하였다. 풀이 코드 import sys input = sys.stdin.readline n = int(input()) book = dict() for i in range(n): cur = input().strip() if book..
2022.05.06 -
[Python] 백준 알고리즘 13417번 - 카드 문자열
[Python] 백준 알고리즘 13417번 - 카드 문자열 문제 출처 : https://www.acmicpc.net/problem/13417 13417번: 카드 문자열 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처 www.acmicpc.net 접근 방법 문자를 입력받고 사전 순으로 가장 빠르게 정렬해야 하는 문제이다. 문자의 경우 처음에 하나의 집합으로 입력을 받고 나서 이제 그 문자들 사이에서 사전 순으로 왼쪽 혹은 오른쪽으로 정렬하는 부분이 문제가 요구하는 풀이인듯하다. 문자를 사전 순으로 비교해가면서 나열하는 것은 아스키코드를 떠올려서 해결하였다. https..
2022.05.04 -
[Python] 백준 알고리즘 13549번 - 숨바꼭질 3
[Python] 백준 알고리즘 13549번 - 숨바꼭질 3 문제 출처 : https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 접근방식 그래프 탐색 방식의 BFS 방식을 이용했다. 문제의 경우 그래프가 주어져있지는 않지만 각 숫자의 번호를 그래프의 노드로 보고 BFS 방식을 적용하였다. 숨바꼭질 3 문제는 기존의 숨바꼭질 문제가 존재하고 문제에 조건을 추가하여 난이도를 올린 문제이다 이전의 숨박꼭질 문제와 다른 점은..
2022.04.12 -
[Python] 백준 알고리즘 2407번 - 조합
[Python] 백준 알고리즘 2407번 - 조합 문제 출처 : https://www.acmicpc.net/problem/2407 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 접근 방식 순열과 조합의 기본을 다루는 문제이다. 순열과 조합 둘 다 개념을 생각해 보면 팩토리얼로 구성된 식으로 표현이 가능하다. 따라서 팩토리얼을 계산하는 메서드를 정의해 주고 그 팩토리얼 메서드를 기반으로 코드를 구성하였다. 문제에서 요구하는 조합의 경우 조합의 정의는 다음과 같다. 메소드를 구현한 후 조합의 정의에 맞춰서 출력을 했다. 코드 # 주어진 문제를 풀기위한 팩토리얼 식 입력 def factorial(a): if a
2022.03.02