실버5 7

백준 [1789.수들의 합] | Python

✏️ 문제 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net ✏️ 풀이방법 1. n은 자연수이므로 1부터 시작해서 while문으로 무한루프를 돌리면서 total의 자연수 누적합을 담는다. 2. 누적된 합이 s와 크거나 같을 때 while문을 종료한다. 3. 누적된 합 total이 입력한 s와 같으면 해당 n을 출력하고 그렇지 않으면 자연수n에서 하나 뺀 수를 출력한다. 📌 코드 s = int(input()) n = 1 total = 0 while True: total += n if total >= s: break n += 1 if total == s: print(..

Python/online judge 2024.01.29

백준 [1193.분수찾기] | Python

✏️ 문제 https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net ✏️ 풀이방법 1. 보기 쉽게 정리해보니 line이 짝수이면 분모가 오름차순, 분자가 내림차순 홀수이면 분모가 내림차순, 분모가 오름차순을 발견 2. line의 수만큼 분수가 나열되기에 while문을 반복해서 line을 찾음 3. 1부터 line의 수만큼 분모리스트(d)와 분자리스트(n)에 숫자 담기 4. line인의 홀수,짝수 여부에 따라 내림차순 출력 정의 📌 코드 x = int(input()) line = 1 d = [] #분모denominator n = [] #분자numerator while True: if x..

Python/online judge 2024.01.29

백준 [10814.나이순 정렬] | Python

✏️ 문제 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net ✏️ 풀이방법 1. 가입한 순서대로 입력했기 때문에 나이순으로만 정렬 📌 코드 n = int(input()) member = [list(map(str,input().split())) for _ in range(n)] smember = sorted(member,key=lambda x:int(x[0])) for i in range(n): print(smember[i][0], smember[i][..

Python/online judge 2024.01.29

백준 [11651.좌표 정렬하기2] | Python

✏️ 문제 https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net ✏️ 풀이방법 - 문제에서 y좌표를 오름차순으로 정렬하고, x 좌표가 증가하는 순서로 정렬하라 하였지만 이대로 수행하면 시행착오2와 같은 문제가 발생한다. 1. x좌표를 오름차순으로 먼저 정렬 2. y좌표를 오름차순으로 정렬 📌 코드 n = int(input()) place = [list(map(int,input().split()..

Python/online judge 2024.01.29

백준 [11650.좌표 정렬하기] | Python

✏️ 문제https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.www.acmicpc.net ✏️ 풀이방법1. x,y좌표를 입력받아 오름차순으로 정렬한다.- sort()메소드와 sorted()함수 모두 풀이 가능 📌 코드n = int(input())place = [list(map(int,input().split())) for _ in range(n)]place.sort()for i in range(n): print(*pl..

Python/online judge 2024.01.29

백준 [1181.단어 정렬] | Python

✏️ 문제 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net ✏️ 풀이방법 1. 단어의 입력을 담을 리스트(words)와 정렬된 단어를 담을 리스트(sortword)를 생성한다. 2. 중복된 단어는 하나만 남기기위해 집합(set)자료형으로 중복을 제거한다. 3. 사전순으로 정렬하기 위해 sort()메소드를 사용한다. 4. 문자열의 길이는 50이 넘지 않는 것을 활용해서 문자열의 길이를 반복을 통해 확인해서 길이가 짧은 순으로 리스트(s..

Python/online judge 2024.01.15

백준 [2563.색종이] | Python

✏️ 문제 https://www.acmicpc.net/problem/2563 2563번: 색종이 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변 www.acmicpc.net ✏️ 풀이방법 1. 가로1,가로2=가로1+10, 세로1,세로2=세로1+10 를 하나의 배열에 놓고 [가로2-가로1,세로2-세로1] 을 계산한 리스트를 두고 각각의 색종이의 길이 안에 겹치는 범위가 있는지 비교 2. 겹치는 범위가 있다면 전체 넓이 - 겹치는 부분의 넓이 -> 비교를 너무 많이 연산해야할 것 같은 생각이 들었다. 그래서 다른 방법으로 접근했다. 1. 0으로 초기화된 배열 선언 2. ..

Python/online judge 2023.11.17