Python 86

백준 11653번 문제 풀이 - 공부하는 도비

https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 이 문제는 입력 받은 수를 소인수분해 하는 문제이고, 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력해야 한다. 소인수분해를 못하는 사람은 없을 꺼라고 생각하고, 코드를 바로 보면 우선, 큰 while문 안에 또 다른 while문을 넣었다. 첫번째 while 조건은 입력 받은 수가 1이 될 때까지 반복문을 돌리는 것이고, 두번째 while 조건은 나누는 수(d)가 입력받은 수(a)를 나누었을 때, 나머지가 0이 되도록 d를 1씩 증가시키면서, a를 나누었을 때 나머지가 0이 될 때 까지 반복문을 돌리는 것이다. ..

Python/Baekjoon 2021.10.24

백준 5355번 문제 풀이 - 공부하는 도비

https://www.acmicpc.net/problem/5355 5355번: 화성 수학 겨울 방학에 달에 다녀온 상근이는 여름 방학 때는 화성에 갔다 올 예정이다. (3996번) 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산 www.acmicpc.net 해당 문제는 특정 문자가 들어오면, 그에 맞춰 정해진 연산을 해주는 문제입니다. - @ => 3 곱하기 - % => 5 더하기 - # => 7 빼기 예제 입력 처럼, 몇개의 문자가 들어올지 모르기 때문에 미리 변수를 선언해서 값을 입력 받는 형태는 사용할 수 없을 꺼라고 생각했다. ( ex) a, b, c = map(int, sys.stdin.readline().split()..

Python/Baekjoon 2021.10.24

백준 1032번 문제 풀이 - 공부하는 도비

https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 처음 이 문제를 봤을 때, 입력받은 정수 만큼 문자열을 저장한 후, 각 자리마다 모두 비교할 생각이었다. 하지만, 제일 처음 입력 받은 문자열과 그 다음 입력 받은 문자열을 비교 한 후, 예제 출력 처럼 미리 바꿔두면, 한번에 모든 문자열을 각 자리마다 비교하는 수고가 사라진다. 코드는 간단하다. 1. a 에 입력한 문자열을 리스트 형으로 바꾸어 저장한다. 2. 입력받은 정수(count)-1..

Python/Baekjoon 2021.10.22

백준 2839번 문제 풀이 - 공부하는 도비

문제를 크게 두 가지로 나눠야해요. 첫 번째는 3과 5의 적당한 곱으로 입력된 값을 만들어 내지 못할 때, -1 을 출력해야하고, 아닌 경우는 총 몇개의 봉지가 필요한지 계산해야 합니다. 이 문제를 푸는 방법은 1. 우선 5로 나눠떨어지면 그 몫을 출력해주면 되고, 2. 아닌 경우는 입력 된 값에 -3을 해주면서 봉지 +1 을 해주면 됩니다.(여기서 +1을 해주는 건, 3kg 봉지가 추가 된다는 뜻입니다.) 3. 위의 과정을 입력된 값이 0 이 될 때까지 진행해줍니다. 만약 입력된 값이 0이 되면, 반복문을 멈춰주면 되겠죠? 코드를 보면 쉽게 이해하실 수 있습니다.!

Python/Baekjoon 2021.08.20

문자열 안 숫자 포함 여부 확인 (str.isdigit(), any() 함수 사용) - 공부하는 도비

* str.isdigit() : str.isdigit() 는 주어진 문자열의 모든 문자가 숫자면 True, 문자가 포함되어 있으면 False를 반환하는 함수입니다. 위의 간단한 예제처럼 주어진 문자열에 문자가 포함되면, False가 출력되는 걸 확인할 수 있습니다. 저번 피드에 올렸던, any를 활용해서도 비슷한 결과를 출력할 수 있습니다. any()는 한 요소만 True여도, True 를 출력하는 함수입니다. (any()와 관련된 내용은 아래 링크를 확인해주세요.) 2021.07.21 - [파이썬/파이썬 이론] - [파이썬] any(), all() 함수 사용하기 - 공부하는 도비 [파이썬] any(), all() 함수 사용하기 - 공부하는 도비 오늘은 any(), all() 함수에 대해서 알아보겠습니다..

Python/Python Basic 2021.07.21

파이썬 2진수, 8진수, 10진수, 16진수 변환 (내장함수, format함수) - 공부하는 도비

1. 10진수에서 2진수, 8진수, 16진수 변환하기 - 내장 함수 사용 - bin(), oct(), hex() 사용하기 test_value = 200 b = bin(test_value)# 10 to 2 o = oct(test_value)# 10 to 8 h = hex(test_value)# 10 t0 16 print(b) print(o) print(h) 위의 코드를 실행하면, 왼쪽과 같은 결과 값이 나오게 됩니다. (0b,0o, 0x가 출력되지 않게 하는 법도 아래에 나옵니다.) 결과는 모두 문자열입니다. 2. format() 함수 사용하기 format() 을 사용해서도 위와 같은 결과를 출력할 수 있습니다. test_value = 200 b = format(test_value, 'b')# 10 to ..

Python/Python Basic 2021.07.21

파이썬 확장 유클리드 알고리즘(Extended Euclidean Algorithm) 구현 - 공부하는 도비

2021.05.21 - [파이썬/프로젝트] - [파이썬] 유클리드 알고리즘(Euclidean Algorithm) - 공부하는 도비 [파이썬] 유클리드 알고리즘(Euclidean Algorithm) - 공부하는 도비 오늘은 간단한 코드 하나를 소개해볼까 합니다. 유클리드 알고리즘은 두 정수의 최대공약수를 쉽게 계산할 수 있도록 하는 것입니다. (자세한 유클리드 알고리즘의 설명은 위키피디아를 참고해 yang-wistory1009.tistory.com gcd(최대공약수) 를 계산하는 알고리즘을 저번 글에서 소개했었습니다. 이번엔, 확장된 유클리드 알고리즘 코드를 보여드릴까 합니다. * 확장 유클리드 알고리즘 : 두 정수 a, b 가 주어질 때, 다음을 만족하는 다른 두 정수 s 와 t 를 계산한다. 간단히 말..

Python/Project 2021.05.21

파이썬 유클리드 알고리즘(Euclidean Algorithm) 구현 - 공부하는 도비

오늘은 간단한 코드 하나를 소개해볼까 합니다. 유클리드 알고리즘은 두 정수의 최대공약수를 쉽게 계산할 수 있도록 하는 것입니다. (자세한 유클리드 알고리즘의 설명은 위키피디아를 참고해주세요.) # Euclidean Algorithm import sys a, b = map(int, sys.stdin.readline().split()) print(" ") q, r = 0, 0 while(True): if a < b : a, b = b, a # swap q = a // b r = a - (q*b) print(a ,'=', q, '*', b, '+', r) if r == 0: print("\ngcd = ", b) if b == 1: print("relatively prime") break a = b b = r ..

Python/Project 2021.05.21

파이썬 rand, randn, randint, random.sample, seed, size, shuffle - 공부하는 도비

오늘은 파이썬에서 난수를 출력하는 법에 대해서 알아볼게요. 최근 random 값을 사용해서 프로그램 작성할 일이 많아서, 정리를 쫙해둬야겠어요. 우선, 파이썬에서 random을 사용하려면, import random 을 해주고, (rand, randn, randint)는 numpy와 관련 있어서, import numpy as np를 해주시면 됩니다. * random.random() : 0부터 1 사이에서 균일한 확률 분포로 실수 난수를 생성 import random a_1 = random.random() print("a_1 : ", a_1) a_2 = random.random() print("a_2 : ", a_2) random.random()을 사용하게 되면, 실행할 때마다 다른 값을 출력합니다. 프로그..

Python/Python Basic 2021.04.19