728x90

Python 72

[Python]백준 BaekJoon.AC 11651 : 좌표 정렬하기2(sys, sort())

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 좌표 정렬하기1의 변형편이다. 그렇지만 x, y였던 우선순위가 y, x로 바뀌기만 해서 간단히 수정해주면 된다. sort() 문장에서 우선순위만 바꿔주면 된다. import sys N = int(input()) num = [] for i in range(N): num.append(list(map(int, sys.stdin.readline()..

[Python]BaekJoon.AC 2022.01.16

[Python]백준 BaekJoon.AC 11650 : 좌표 정렬하기(sys, sort())

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 놀러와서도 코딩하겠다고 노트북 붙잡고 있는 내가 최고...^^ 아른거려 하나라도 올리고 자야겠다. 그리 어렵지 않은 문제. 그러나 첫번째 for문을 구현하는 문장이 조금 헷갈렸다. 더 간단한 방법이 있는지 찾아봐야겠다. 2차원 배열을 구현하려다보니 이렇게 됐다. 늘 사용하던 것들이지만 합쳐지니 복잡해보인다. import sys N = int(i..

[Python]BaekJoon.AC 2022.01.15

[Python]백준 BaekJoon.AC 10989 : 수 정렬하기3(sys, list)

https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 입력 최대 개수는 10,000,000개지만 입력값의 최대값은 10,000이다. 양은 많지만 그 가짓수는 비교적 적다는 조건을 이용했다. 그래서 리스트를 애초에 10,001개 만들어줬고(0~10,000) 입력값에 따라 1씩 카운트를 증가해줬다. 이렇게 되면 굳이 입력값이 무엇인지 저장하지 않아도 되고(리스트의 입력값번째에 카운트해주니까) 값에 따라 카운트만 해주면 되니 간편하다. 출력은 0부터 10,000까지의 리스트..

[Python]BaekJoon.AC 2022.01.14

[Python]백준 BaekJoon.AC 10814 : 나이순 정렬(list, sort())

https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 크게 어려운 점은 없는 무난한 list 문제였다. 다만 age를 int 취급해줘야 하는 점 잊지 않아야겠다. 더보기 N = int(input()) mem = [] for i in range(N): age, name = input().split() mem.append([]) mem[i].append(i) mem[i].append(int(age)) mem[i].append(name) mem.sort(key..

[Python]BaekJoon.AC 2022.01.13

[Python]백준 BaekJoon.AC 7568 : 덩치(list, for문)

https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 와 문제 이해를 잘못해서 삽질을....!! 그냥 키 몸무게 비교해서 등수 선정해줬더니 자꾸 틀렸다고 뜨는거 아니겠어..? 문제 이해를 못한 것 같긴 했는데 어딜 잘못 이해했는지 알 수 없었다. 그러다 3 11 11 10 12 11 13 반례를 봤는데 정답이 "1 2 1"이었다. 여기서부터 내 코드에 의구심이 들기 시작하였다. 내 머리로는 1 1 1이 정답인데! 그리고 내가 이해한 조건..

[Python]BaekJoon.AC 2022.01.13

[Python]백준 BaekJoon.AC 2751 : 수 정렬하기2(sys, sort())

https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 왜 이런 문제가 이 난이도에 있을까 무조건 의심부터 시작했지만.. 시간제한이 2초나 되서, 파이썬은 괜찮지 않을까 싶어 뚝딱뚝딱 제출했더니 역시나 시간초과였다!.. 이 심플한 문제에 다른 풀이과정이 어떤게 있을까 생각했다. 리스트 크기를 1,000,000으로 정해두고 boolean으로 받아야 하나, 별 생각을 다 해봤는데. sys로 숫자를 받아야 통과되는 문제인 듯 했다. 다른 방법도 ..

[Python]BaekJoon.AC 2022.01.13

[Python]백준 BaekJoon.AC 2609 : 최대공약수와 최소공배수(유클리드 호제법)

유클리드 호제법을 이용해 최소공약수와 최대공배수를 구하라는 문제. 두 수 중 큰 수를 작은 수로 나누고, 그 나머지로 원래 큰 수를 대신한다. 둘 중 한쪽이 0이 될 때까지 실행하며 다른 값이 최대공약수다. 원래 두 수를 곱한 값에서 최대공약수를 나누면 최소공배수가 된다. 원리는 알지만 늘 신기하다!ㅋㅋㅋ 그리고 그 원리를 늘 다시 까먹는다. 다시 공부하고 신기해하고 반복.. 최소공배수 구하는 건 새로워서 이 방법으로 해봤다. 참신하고 신기하다.. A, B = map(int, input().split()) copyA, copyB = A, B while not (A==0 or B==0): if max(A, B) == A: A = A % B else: B = B % A result = max(A, B) pr..

[Python]BaekJoon.AC 2022.01.12

[Python]백준 BaekJoon.AC 1436 : 영화감독 숌(브루트포스, find())

https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 브루트포스 알고리즘이란 확신이 없었을 땐 이런 저런 구상들을 해봤는데, 아무리 생각해도 하나씩 카운트 해주는게 신속정확할 것 같았다. 1씩 늘려주는 변수 num을 처음부터 666으로 설정한 이유는, 666이 조건을 만족하는 첫 숫자이기 때문이다. (1~665)는 시간낭비가 확실하니 666을 처음으로 뒀다. while문을 사용했고, num을 1씩 증가시켜주며 666이 포함된 숫자인지 체크한다. 이..

[Python]BaekJoon.AC 2022.01.11

[Python]백준 BaekJoon.AC 1181 : 단어 정렬(sort())

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 정렬을 정식으로 접해봤다. 나름 쉽고 간편하다.. 리스트에 단어들을 넣어주고, set을 이용해 중복을 제거해줬다. 그리고 sort를 이용해 정렬을 시도했다. 리스트 항목의 길이를 최우선으로 뒀고, 사전식 배열을 다음 순위로 설정했다. 괄호 안에 순서대로 넣으면 된다. 굿! N = int(input()) words = [] for i in range(N): words.append(inpu..

[Python]BaekJoon.AC 2022.01.11

[Python]백준 BaekJoon.AC 1018 : 체스판 다시 칠하기(list, for문)

https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net string 문자열을 그냥.. st = "abcd"로 선언하고 st[1]을 프린트하면 b가 출력되더라...? 2차원 배열을 리스트로 어떻게 구현해야 할까 고민했는데 그냥 리스트에 문자열을 통채로 넣으면 되는 거였다. 그 자체가 2차원 리스트라 말할 수 있다. 대신 특정 방법을 사용하지 않는 한 수정은 안되는 듯 하다. 너무 신기하고 기특한 파이썬...!ㅋㅋ 더 간추리는 방법이 있지만 가독성..

[Python]BaekJoon.AC 2022.01.10
728x90