Python 59

[Python] round의 사사오입과 오사오입에 대해

결론부터 말하자면 Python의 round함수는 오사오입을 사용한다. 사사오입과 오사오입은 숫자를 반올림하는 두 가지 방법이다. 이들은 소수점 이하의 숫자를 처리할 때 사용되며, 각각의 방식은 두 가지이다. 사사오입(Round Half Up)이란? 5 이상에서 올리고, 5 미만은 버리는 것이 우리가 알고 있는 반올림 방식인 사사오입이며 Round Half Up이라고 한다. 일반적으로 알고 있는 반올림이다. 소수점 0부터 5까지는 파이썬의 floor 함수를 사용하는 것과 같고, 소수점이 5를 초과할 때부터는 파이썬의 ceil 함수와 동일하다. 그림으로 표현하면 다음과 같으며, 프로그램 실행 시 다음과 같이 결과가 나온다. 혹시 코드가 필요한 사람이 있을 수 있으므로 코드도 첨부하겠다. from math i..

Coding/Python 2023.11.26

[BOJ] [Python] 18110번: solved.ac

https://www.acmicpc.net/problem/18110 18110번: solved.ac 5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다. www.acmicpc.net 문제 solved.ac는 Sogang ICPC Team 학회원들의 알고리즘 공부에 도움을 주고자 만든 서비스이다. 지금은 서강대뿐만 아니라 수많은 사람들이 solved.ac의 도움을 받아 알고리즘 공부를 하고 있다. ICPC Team은 백준 온라인 저지에서 문제풀이를 연습하는데, 백준 온라인 저지의 문제들에는 난이도 표기가 없어서, 지금까지는 다양한 문제를 풀어 보고 ..

Algorithm/BOJ 2023.11.25

[BOJ] [Python] 20291번: 파일 정리

https://www.acmicpc.net/problem/ 문제 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 확인할 수 있었다. 바탕화면의 파일들에는 값진 보물에 대한 정보가 들어 있어. 하나라도 지우게 된다면 보물은 물론이고 다시는 노트북을 쓸 수 없게 될 거야. 파일들을 잘 분석해서 보물의 주인공이 될 수 있길 바랄게. 힌트는 “확장자”야. 화가 났던 스브러스는 보물 이야기에 금세 화가 풀렸고 보물의 정보를 알아내려고 애썼다. 하지만 파일이 너무 많은 탓에 이내 포기했고 보물의 절반을 보상으로 파일의 정리를 요청해왔다. 스브러스의 요청은 다음과 같다. 파일을 확장..

Algorithm/BOJ 2023.11.23

[BOJ] [Python] 1755번: 숫자놀이

https://www.acmicpc.net/problem/1755 1755번: 숫자놀이 79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 www.acmicpc.net 문제 79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 먼저 온다. 문제는 정수 M, N(1 ≤ M ≤ N ≤ 99)이 주어지면 M 이상 N 이하..

Algorithm/BOJ 2023.11.22

[BOJ] [Python] 17262번: Four Squares

https://www.acmicpc.net/problem/17626 17626번: Four Squares 라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다; 또한 42 + 32 + 1 www.acmicpc.net 문제 라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다. $4^2+3^2+1^2$ 으로 표현할 수도 있다. 역사적으로 암산의 명수들에게 공통적으로 주어지는 문제가 바로 자연수를 넷 혹은 그 이하의 제곱수 합으로 나타내라는 것이었..

Algorithm/BOJ 2023.11.21

[BOJ] [Python] 1038번: 감소하는 수

https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net 문제 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면 -1을 출력한다. 입력 더보기 첫째 줄에 N이..

Algorithm/BOJ 2023.11.21

[BOJ] [Python] 10419번: 지각

https://www.acmicpc.net/problem/10419 문제 창영이는 이번학기에 어떤 교양수업을 듣고 있다. 그런데, 그 교수님은 매우 지각을 자주 하시고 게다가 수업에 지각을 하였을 경우 수업을 일찍 마쳐 주기까지 하는 것을 발견하였다. 창영이는 교수님의 지각시간 0이상의 정수 t와 수업을 일찍 마쳐주는 시간 s 사이에 다음과 같은 관계가 있음을 알았다. $s = t^2$ 문득 창영이는 수업시간 d가 주어졌을 때, 교수님이 얼마나 지각을 할 수 있는지 궁금해졌고, 여러분은 창영이를 도와서 교수님이 지각할 수 있는 최대의 시간을 알아보자. 물론, 교수님이 도착하자마자 수업을 일찍 마쳐서 수업이 끝나는 것도 가능하다. 예를 들어, 수업시간이 6분인 경우, 교수님이 2분 지각을 하면, 4분간 수..

Algorithm/BOJ 2023.11.20

[프로그래머스] [Python] (Level 2) 숫자 카드 나누기 ( + 추가적인 Test Case)

https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 더보기 철수와 영희는 선생님으로부터 숫자가 하나씩 적힌 카드들을 절반씩 나눠서 가진 후, 다음 두 조건 중 하나를 만족하는 가장 큰 양의 정수 a의 값을 구하려고 합니다. 철수가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고 영희가 가진 카드들에 적힌 모든 숫자들 중 하나도 나눌 수 없는 양의 정수 a 영희가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고, 철수가 가진 카드들에 적힌 모든 ..

[프로그래머스] [Python] (Level 2) 점 찍기 ( + 추가적인 Test Case)

https://school.programmers.co.kr/learn/courses/30/lessons/140107 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 더보기 좌표평면을 좋아하는 진수는 x축과 y축이 직교하는 2차원 좌표평면에 점을 찍으면서 놀고 있습니다. 진수는 두 양의 정수 k, d가 주어질 때 다음과 같이 점을 찍으려 합니다. 원점(0, 0)으로부터 x축 방향으로 a*k(a = 0, 1, 2, 3 ...), y축 방향으로 b*k(b = 0, 1, 2, 3 ...)만큼 떨어진 위치에 점을 찍습니다. 원점과 거리가 d를 넘는 위치에는 점..