파이썬 68

[백준] 2903번 파이썬 python(중앙 이동 알고리즘)

▷ 문제 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. 외계 지형은 중앙 이동 알고리즘을 이용해서 만들려고 한다. 알고리즘을 시작하면서 상근이는 정사각형을 이루는 점 4개를 고른다. 그 후에는 다음과 같은 과정을 거쳐서 지형을 만든다. 정사각형의 각 변의 중앙에 점을 하나 추가한다. 정사각형의 중심에 점을 하나 추가한다. 초기 상태에서 위와 같은 과정을 한 번 거치면 총 4개의 정사각형이 새로 생긴다. 이와 같은 과정을 상근이가 만족할 때 까지 계속한다. 아래 그림은 과정을 총 2번 거쳤을 때까지의 모습이다. 상근이는 어떤 점은 한 개 보다 많은 정사각형에 ..

[백준] 2720번 파이썬 python(세탁소 사장 동혁)

▷ 문제 미국으로 유학간 동혁이는 세탁소를 운영하고 있다. 동혁이는 최근에 아르바이트로 고등학생 리암을 채용했다. 동혁이는 리암에게 실망했다. 리암은 거스름돈을 주는 것을 자꾸 실수한다. 심지어 $0.5달러를 줘야하는 경우에 거스름돈으로 $5달러를 주는것이다! 어쩔수 없이 뛰어난 코딩 실력을 발휘해 리암을 도와주는 프로그램을 작성하려고 하지만, 디아블로를 하느라 코딩할 시간이 없어서 이 문제를 읽고 있는 여러분이 대신 해주어야 한다. 거스름돈의 액수가 주어지면 리암이 줘야할 쿼터(Quarter, $0.25)의 개수, 다임(Dime, $0.10)의 개수, 니켈(Nickel, $0.05)의 개수, 페니(Penny, $0.01)의 개수를 구하는 프로그램을 작성하시오. 거스름돈은 항상 $5.00 이하이고, 손님..

[머신러닝 실습] Linear Regression(선형 회귀) with PyTorch

이 글은 PyTorchZeroToAll을 기반으로 작성한 글입니다. [머신러닝 이론] Multiple Linear Regression(다중 선형 회귀) 이 글은 모두를 위한 딥러닝 시즌1을 기반으로 작성한 글입니다. [머신러닝 이론] Gradient descent(경사하강법) 이 글은 모두를 위한 딥러닝 시즌1을 기반으로 작성한 글입니다. [머신러닝 이론] Linear chaerrylog.tistory.com 앞에서 선형 회귀에 대해서 알아봤다. 이 내용들을 종합해 파이토치를 사용해 실습을 진행한다. import torch from torch import nn from torch import tensor torch를 import한다. PyTorch를 통해 신경망을 만들기 위해 torch.nn 패키지를 i..

[백준] 2745번 파이썬 python(진법 변환)

▷ 문제 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 ▷ 전체 코드 N, B = input().split() N = N[::-1] B = int(B) a = list("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ") b = 0 for i,n in enumerate(N): b += (B**i)*(a.index(n)) print(b) ▷ 코드 분석 N, B = input().split() N = N[::-1] B = int(B) 변수 N에 변환할 수를 ..

[백준] 2563번 파이썬 python(색종이)

▷ 문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. ▷ 전체 코드 n = int(input()) a = [[0]*100 for i in range(100)] for i in range(n): x, y = map(int, input().split()) for i in range(x, x+10): for j in..

[백준] 10798번 파이썬 python(세로읽기)

▷ 문제 아직 글을 모르는 영석이가 벽에 걸린 칠판에 자석이 붙어있는 글자들을 붙이는 장난감을 가지고 놀고 있다. 이 장난감에 있는 글자들은 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’이다. 영석이는 칠판에 글자들을 수평으로 일렬로 붙여서 단어를 만든다. 다시 그 아래쪽에 글자들을 붙여서 또 다른 단어를 만든다. 이런 식으로 다섯 개의 단어를 만든다. 아래 그림 1은 영석이가 칠판에 붙여 만든 단어들의 예이다. 한 줄의 단어는 글자들을 빈칸 없이 연속으로 나열해서 최대 15개의 글자들로 이루어진다. 또한 만들어진 다섯 개의 단어들의 글자 개수는 서로 다를 수 있다. 심심해진 영석이는 칠판에 만들어진 다섯 개의 단어를 세로로 읽으려 한다. 세로로 읽을 때, 각 단..

[머신러닝 이론] Multiple Linear Regression(다중 선형 회귀)

이 글은 모두를 위한 딥러닝 시즌1을 기반으로 작성한 글입니다. [머신러닝 이론] Gradient descent(경사하강법) 이 글은 모두를 위한 딥러닝 시즌1을 기반으로 작성한 글입니다. [머신러닝 이론] Linear Regression(선형 회귀) 이 글은 모두의 딥러닝 시즌1을 기반으로 작성한 글입니다. [머신러닝 이론] Machine Learni chaerrylog.tistory.com 앞에서 단순 선형 회귀와 cost가 최소가 되는 weight 값을 찾는 방법인 경사하강법에 대해서 알아봤다. 이번 글에서는 다중 선형 회귀에 대해서 알아보겠다. Multiple Linear Regression 다중 선형 회귀는 독립 변수 x가 여러 개일 때의 종속 변수 y를 예측하는 것이다. 따라서 input으로 ..

[백준] 2566번 파이썬 python(최댓값)

▷ 문제 과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오. 예를 들어, 다음과 같이 81개의 수가 주어지면 이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다. ▷ 전체 코드 a = [] for i in range(9): a.append(list(map(int, input().split()))) x = 0 r = 0 c = 0 for i in range(9): for j in range(9): if a[i][j] >= x: x = a[i][j] r = i+1 c = j+1 print(x) print(r, c) ▷ 코드 분석 a = [] for i in range(9): a.appe..

[백준] 2738번 파이썬 python(행렬 덧셈)

▷ 문제 N*M크기의 두 행렬 A와 B가 주어졌을 때, 두 행렬을 더하는 프로그램을 작성하시오. ▷ 전체 코드 N, M = map(int, input().split()) a = [] b = [] for i in range(N): a.append(list(map(int, input().split()))) for i in range(N): b.append(list(map(int, input().split()))) for i in range(N): for j in range(M): print(a[i][j] + b[i][j], end=' ') print() ▷ 코드 분석 N, M = map(int, input().split()) a = [] b = [] 변수 N과 M에 각각 행렬의 행과 열의 수를 저장한다. m..

[백준] 25206번 파이썬 python(너의 평점은)

▷ 문제 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치훈이의 전공평점을 계산해주는 프로그램을 작성해보자. 전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다. 인하대학교 컴퓨터공학과의 등급에 따른 과목평점은 다음 표와 같다. P/F 과목의 경우 등급이 P또는 F로 표시되는데, 등급이 P인 과목은 계산에서 제외해야 한다. 과연 치훈이는 무사히 졸업할 수 있을까? ▷ 전체 코드 a = {"A+": 4.5, "A0": 4.0, "B+": 3.5, "B0": 3.0, "C+": 2.5, "C0": 2.0, "D+": 1.5, "D0": 1.0, "F..