GitHub

https://github.com/Choidongjun0830

전체 글 444

Baekjoon Online Judge 2447번 파이썬. 분할 정복.

문제 링크 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 빨간 부분을 상, 주황 부분을 중, 노란 부분을 하로 생각해서 3구간으로 나누어 풀었다. 정답 코드 import sys N = int(sys.stdin.readline()) def dnc(N): if N == 1: return ["*"] divide = dnc(N//3) stars = [] for d in divide: #상 stars.append(d*3) f..

타입스크립트 2주 완성 챌린지 수료!

챌린지를 하면서 모르는 것은 강의를 여러번 보거나 구글링을 하였고, docs와 stackoverflow를 많이 읽게 되었다. 다른 챌린지들은 최종 과제가 화려하고 나만의 것을 만드는 것이 었지만, 타입 스크립트 챌린지의 마지막 과제는 그렇지 않았다. 그래서 과제를 하면서 이게 맞나..??,졸업이 할 수 있나..?? 라는 생각이 계속 들었다. 그래도 타입스크립트를 처음 접해보는 입장에서 알기 쉽게 설명해주셔서 효율적으로 학습할 수 있었다.

노마드 코더 2023.01.13

Baekjoon Online Judge 11728번

문제 링크 https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 정답 코드 import sys n,m = map(int,sys.stdin.readline().split()) N = list(map(int,sys.stdin.readline().split())) M = list(map(int,sys.stdin.readline().split())) result = N + M result = sorted(result) p..

Baekjoon Online Judge 1744번. 그리디.

문제 링크 https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 정답 코드 import sys N = int(sys.stdin.readline()) positive = [] negative = [] result = 0 for i in range(N): num = int(input()) if num > 1: positive.append(num) elif num = len(positive): #같이 곱해질 짝이 없으면 더하기 result += posi..

Baekjoon Online Judge 11399번 파이썬. 그리디.

문제 링크 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 정답 코드 import sys N = int(sys.stdin.readline()) P = list(map(int,sys.stdin.readline().split())) P = sorted(P) min = 0 result = 0 for i in P: min += i result += min print(result)

Baekjoon Online Judge 1931번 파이썬. 그리디.

문제 링크 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 정답 코드 import sys N = int(sys.stdin.readline()) I = [] for i in range(N): I.append(list(map(int,sys.stdin.readline().split()))) I = sorted(I,key=lambda x:x[0]) #시작시간 기준 오름차순 정렬 I = sorted(I,key=lambda x:x[1]) #종료시간 기준 오름차순 정렬 last = 0 #회의가 끝나는 시간 count = 0 #회의 개수 세기 for i,j in I: if ..

Baekjoon Online Judge 1783번 파이썬. 그리디.

문제 링크 https://www.acmicpc.net/problem/1783 1783번: 병든 나이트 첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net N = 1 이동할 수 없으므로 방문 할 수 있는 칸 수는 1. N = 2 위로 한 번,오른쪽 두번과 아래로 한 번, 오른쪽 두번. 이 두가지 이동패턴만 가능하다. 그런데, 4번 이상 이동하면 이동 패턴을 한번씩만 사용해야 한다. 그리고 이는 M의 길이에 따라 달라진다. M이 6보다 커질 때부터 이동 횟수가 4번이 되기 때문에 더 이상 이동할 수 없게 된다. 열의 크기 / 방문한 칸 수 M = 1 -> 1 M = 2 -> 1 M = 3 -> 2 M = ..

Baekjoon Online Judge 10610번 파이썬. 그리디.

문제 링크 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 30의 배수가 되려면, 3의 배수이며, 1의 자리가 0이어야한다. 3의 배수가 되려면, 각 자리 수의 합이 3의 배수가 되어야 한다. 이를 만족시키고, 내림차순 정렬을 하면 30의 배수가 될 수 있는 가장 큰 수를 구할 수 있다. 정답 코드 N= list(map(int,input())) sum = 0 for i in N: sum += i if sum % 3 != 0 or 0 not in ..

Baekjoon Online Judge 2875번. 그리디

문제 링크 https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 적어도 여학생이 2명, 남학생이 1명이 있어야 팀 1개가 만들어진다. 그래서 여학생이 2명 이상, 남학생이 1명 이상이고, 인턴십에 간 학생들보다 3명이 많아야 적어도 한 팀이 만들어지므로 ‘while N>=2 and M>=1 and N+M >= K+3:’로 작성한다. 정답 코드 import sys N,M,K = map(int,sys.stdin.readline().split()) team = 0 while N>=2 and M>=1 and N+M >= K+..

Baekjoon Online Judge 11047번 파이썬. 그리디

문제 링크 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 정답 코드 import sys N, K = map(int,sys.stdin.readline().split()) money = [] for i in range(N): money.append(int(sys.stdin.readline())) count = 0 bill = money[len(money)-1] def greedy(K..

728x90