분류 전체보기 170

[백준] 11651 좌표 정렬하기 2 - python

11651번: 좌표 정렬하기 2 (acmicpc.net) 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 앞에 했던 11650이랑 아주 유사함. 대신 y를 기준으로 정렬해야하기 때문에 a와 b를 순서를 바꿔 리스트에 쌓았다. 그리고 정렬 후, a와 b의 위치를 바꿔서 출력하면 끝 import sys num = int(sys.stdin.readline()) total = [] for i in range(num): ab = list(map(int,sys.st..

[백준] 11650 좌표 정렬하기 - python

11650번: 좌표 정렬하기 (acmicpc.net) 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 처음엔 . . 앞자리 숫자와 뒷자리 숫자 따로 리스트를 만들어서 줄세워야하나 고민했다. but.. 파이썬은 알아서 두 좌표 정렬도 해주더라 하지만 코테 준비를 위해서는 sort를 쓰지 않고 정렬하는 법도 외우긴 해야겠다. import sys num = int(sys.stdin.readline()) total = [] for i in range(num): ab..

[백준] 2751 수 정렬하기 2 - python

2751번: 수 정렬하기 2 (acmicpc.net) 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net num을 int(input())으로 받았더니 시간초과가 발생함 주의할 것 import sys num = int(sys.stdin.readline()) total =[] for i in range(num): x = int(sys.stdin.readline()) total.append(x) total = sorted(total) for i in total: print(i)

[백준] 10610 30 - python

https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 30 배수의 조건 1. 끝자리가 0이여야함 2. 자리수를 모두 더했을 때 3으로 나눠져야한다. 3의 배수 : 3 6 9 12 15 18 21 은 모두 자리수를 더하면 3의 배수임을 이용하자. num을 정렬한 후, 3으로 나누어 떨어지지 않거나, 0이 num에 없으면 -1을 출력하는 방식 사용 num = list((input())) num = sorted(num) sum = 0 for i in num..

[백준] 2875 대회 or 인턴 - python

https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 조건을 잘 활용하면 아주 쉬운 문제였다. 카운트 증가 조건에 1. n이 2이상 2. m이 1이상 3. k 인원을 빼고도 팀이 생길 수 있어야 함 = n+m이 k+3 이상이여야함 n, m, k = map(int,input().split()) cnt = 0 while n >= 2 and m >= 1 and n + m >= k+3: n -= 2 m -= 1 cnt += 1 print(cnt)

[백준] 11047 동전 0 - python

https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제에 주어진 화폐단위가 모두 배수임을 잘 활용하자 ! 나누어 떨어지는 동전 문제를 풀 때는 무조건 제일 큰 단위부터 계산하기 그래서 입력받은 수들을 역으로 계산한다. total을 coin에 들어있는 숫자들로 나누어지면 카운트가 올라가게함. 만약 total이 4300원이면, 4300//1000 == 4가 카운트 되고, total엔 나..

ADSP 합격 ~~~~~~~

2과목 3문제 밖에 못풀어서 심장이 벌렁벌렁벌렁했는데 어떻게 한문제 잘찍어서 맞았나보다 1과목은 어떻게 하나만 틀린건지 나도 모르겠는. 통계를 하나도 몰라서 3과목 공부하면서 이거 맞나 싶었는데 공부할 시간 많으면 3과목 열심히 하시고 시간이 별로 없다면 . . 그냥 기출 많이 푸십쇼 2과목이 은근 과락 맞기 쉽기 때문에 2과목도 열심히 . . 훗 하나 해치웠다. 다음 목표는 정처기 !

공부일지 2022.11.19

[백준] 11655 ROT13 - python

https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 처음엔 무식하게 알파벳 들어있는 리스트 만들고 거기서 인덱스+13을 하려고했다. but . . 아스키 코드를 사용하면 비교적 쉽게 구할 수 있음. ord(문자) = 아스키 코드 넘버를 출력 출력된 아스키 코드 넘버 +13하면 알아서 13번째 뒤에 알파벳을 꺼내줌. 하지만 총 26개의 알파벳중 13번보다 앞에 번호일 경우에만 13을 더해주고, 13번보다 뒷 번호라면 -13을 해줘야 원하는 값이 나온다. x = input() total = '' for i in x: if..

[백준] 10820 문자열 분석 - python

https://www.acmicpc.net/problem/10820 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net while True: try : x = list(input()) total = [0]*4 for i in range(len(x)): if x[i].isspace() == True: total[3] +=1 elif x[i].isupper() == True: total[1] +=1 elif x[i].islower() == True: total[0] +=1 elif x[i].isdigit() == ..

[백준] 10808 알파벳 개수 / 10809 알파벳 찾기 - python

https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net abc = list(input()) arr = 'abcdefghijklmnopqrstuvwxyz' total = [0]*26 for i in range(len(arr)): for j in range(len(abc)): if arr[i] == abc[j]: total[i] +=1 print(' '.join(map(str,total))) https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등..