Python 9

[Python] 파이썬 백준 boj 1316 "그룹단어 체커"

그룹 단어 체커 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 128 MB 67462 34678 29290 52.319% 문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, ..

Python 2021.10.21

[Python] 백준 boj 4673 "셀프넘버" - 시간초과 해결

셀프 넘버 성공출처다국어 한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 97988 48847 38728 49.539% 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 ..

Python 2021.10.21

[Python] Dynamic Programing(Dp 알고리즘) - 피보나치 수열

피보나치 수열이란 수학에서, 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. 처음 여섯 항은 각각 1, 1, 2, 3, 5, 8이다. [위키백과] 이다!. 보통 피보나치 수열을 계산할 때 재귀로 많이 풀었는데, 재귀로 풀면 시간이 점점 증가하기 때문에 50이상은 구하기 힘들다. 이럴 때 쓸 수 있는게 동적 계획법, 즉 다이나믹 프로그래밍 이다. 동적계획법 (DP) 동적 계획법(Dynamic Programming)이란 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말한다. 이것은 부분 문제 반복과 최적 부분 구조를 가지고 있는 알고리즘을 일반적인 방법에 비해 더욱 적은 시간 내에 풀 때 사용한다. [위키백과..

Python 2021.10.21

[Python] DFS & BFS - DFS와 BFS를 쓰는 상황

자바로 dfs와 bfs를 공부한적이있는데, 파이썬으로 다시 해보면서 개념정리와, 어떤 상황에서 유리한지 정리해보고자 한다, DFS & BFS DFS란 자료의 검색, 트리나 그래프를 탐색하는 방법. 한 노드를 시작으로 인접한 다른 노드를 재귀적으로 탐색해가고 끝까지 탐색하면 다시 위로 와서 다음을 탐색하여 검색한다. [컴퓨터인터넷IT용어대사전] dfs는 그래프의 노드를 갈 수 있는 데 까지 끝까지 방문하는 것이다. 노드를 순서대로 목적지에 도달할 때 까지 방문하면서, 각 노드에서 또 방문할 수 있는 위치를 저장해 둔다. 노드가 끝까지 갔다가 다시 한칸 뒤로 돌아와, 갈 수 있는 방향을 탐색한다. 따라서 재귀적이고 / 스택을 이용할 수 있다. Depth First Search BFS란 자료의 검색, 트리나 ..

Python 2021.10.21

[Python] 파이썬 단일, 복수 입력값 받기

파이썬 백준 문제를 풀기위해 사용자에게 입력값을 받아야했다. 파이썬으로 입력값을 받는 방법은 단순하다, 1. 단순 입력값 받기 text1 = input() input() 함수를 이용해 사용자에게 입력값을 받을 수 있지만, 이러면 사용자에게 입력받은 모든 값을 문자열로 처리한다. 2. 숫자 입력받기 num = int(input('숫자를 입력해 주세요 : ')) 문자열로 입력받은 수를 정수형 타입으로 변환해서 전환해줍니다. 3. 여러개의 입력 값 받기 #split()은 문자열을 분리한다는 뜻 -> 매개변수로 분리할 기준값을 전달해 줄 수 있다. st1, st2 = input('문자열을 입력해주세요 : ').split() split()함수를 이용해 여러개의 값을 받을 수 있습니다. 하지만, 이러한 방법은 사용..

Python 2021.10.20

[Python] 아스키 코드 문자 변환 ord(), chr - "python char to ascii code"

1. 파이썬 아스키 코드 확인 - ord( ) 파이썬에서는 문자를 아스키코드로 변환하고, 정수형 숫자를 아스키코드로 인식해 문자로 반환해주는 아주아주 편리한 내장함수 ord()가 존재합니다. # 내장 함수 ord() 이용해서 아스키 값 받기 print(ord('a')) # 97 print(ord('a') - ord('a')) # 97-97 -> 0 print(ord('b') - ord('a')) # 98-97 -> 1 2. 파이썬 아스키 코드로 문자 변환 - chr( ) ord()로 아스키코드 값을 알아낸다면 chr() 로 문자를 알 수 있습니다. chr 함수란, chr(i)는 유니코드(Unicode) 값을 입력받아 그 코드에 해당하는 문자를 출력하는 함수입니다. >>> chr(97) 'a' >>> ch..

Python 2021.10.20

[Python] 현재 시각 알아내기 - datetime()

python datetime 사용법에 대해 알아보자 프로젝트를 진행할 때 파일 저장 날짜나, 게시글 저장 날짜를 입력하고 싶을 때가 있는데 그때 Python datetime() 함수를 이용하여 현재 시각을 불러 올 수 있다. 1. datetime 내장함수 임포트 from datetime import datetime 2. 현재 날짜 시간 찍기 now = datetime.now() print(now) 3. 날짜 시간을 원하는 형태로 변환하기 (날짜 포맷) date_time = now.strftime("%Y-%m-%d-%H-%M-%S") print(date_time)

Python 2021.10.06
반응형