전체 글 120

[프로그래머스] 제일 작은 수 제거하기 - python

출처: https://programmers.co.kr/learn/courses/30/lessons/12935 코딩테스트 연습 - 제일 작은 수 제거하기 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1 programmers.co.kr 풀이 : def solution(arr): answer = [] a = arr.index(min(arr)) arr.pop(a) if len(arr) == 0: answer = [-1] else: answer = arr return answer 간단하게 리스트 중 최솟값을 찾아서 제거하는 문제다. 다음과 같이..

코딩테스트 2022.01.13

[프로그래머스] 로또의 최고 순위와 최저 순위

출처 : https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 문제가 너무 길어 문제는 생략하겠다. 풀이 def solution(lottos, win_nums): rank = [6,6,5,4,3,2,1] ans = lottos.count(0) cnt = 0 for i in win_nums: if i in lottos: cnt += 1 return rank[cnt+ans..

코딩테스트 2022.01.13

[프로그래머스][lv3] 최고의 집합 - python

출처 https://programmers.co.kr/learn/courses/30/lessons/12938?language=python3# 코딩테스트 연습 - 최고의 집합 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만 programmers.co.kr 풀이 def solution(n, s): answer = [] a = s//n if a < 1 : answer = [-1] else : for i in range(n): answer.append(a) b = s % n for j in range(b): answer[j] += 1 answer.sort(..

코딩테스트 2022.01.13

[pytorch] MNIST 예제

기존 텐서플로로 공부를 해왔다. 그런데 최근 트렌드가 텐서플로에서 파이토치로 많이 넘어간다고 한다. 파이썬과 많이 비슷하며 연구진들이 정말 많이 사용해 논문 같은 예시 코드가 파이토치로 많이 구현되있어서 이왕 제대로 각잡고 공부하는거 토치를 한 번 공부해 보려고 한다. 실제로 간단한 기본 MNIST를 하면서 느낀점은 ... 더 어렵다. 확실히 더 어렵다... 아직 잘 몰라서 이런 말 하기도 조심스럽지만 텐서플로 같은 경우에는 모델을 돌릴 때 아주 간단하게 돌릴 수 있었다. 하지만 디테일하게 들어가서 구조를 들여다 보고 모델이 돌아가는 방식을 살피기는 쉽지 않았다. 그냥 필요한 값만 넣어주면 알아서 돌아가는 시스템이였다. 근데 파이토치는 모델의 구조 순서에 따라 직접 구성하는 방식이고 원리를 잘 이해한 상..

pytorch 2022.01.12

백준 터렛 1002 - python

출처 : https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 풀이: T = int(input()) for _ in range(T): x1,y1,r1,x2,y2,r2 = map(int,input().split()) d = ((x2 - x1) ** 2 + (y2 - y1) ** 2) **(1/2) if d == 0 and r1 == r2 : print(-1) elif abs(r1-r2)

백준 4153 직각삼각형 - python

https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 풀이: while 1: a= list(map(int,input().split())) # [13,5,12] if a == [0,0,0]: break a.sort() if a[2]**2 == a[0]**2 + a[1]**2 : print('right') else: print('wrong') 입력을 제한없이 돌려야하므로 while 1: 을 써주고 0,0,0 이 입력되면 종료되도록해준다. 그리고 리스트 형태로 출력을 받아..

백준 3009 네 번째 점 - python

출처 : https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 풀이 : x1, y1 = map(int,input().split()) x2, y2 = map(int,input().split()) x3, y3 = map(int,input().split()) if x1 == x2: x4 = x3 elif x1 == x3: x4 = x2 else : x4 = x1 if y1 == y2 : y4 = y3 elif y1 == y3: y4 = y2 else: y4 = y1 print(x4,y4) 다른 풀이도 보겠지만 그냥 내풀이는 생략하겠다...

백준 1085 직사각형에서 탈출 - python

풀이: https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 풀이: x,y,w,h = map(int,input().split()) print(min(abs(w-x),abs(h-y),abs(x),abs(y))) 방법이 벽에 닿는게 w-x, x , h-y ,y 이렇게 4개 뿐이다. 절댓값 해서 min하면 된다.