전체 글 144

백준 11047. 동전 0 [Python]

문제 : 동전 0 난이도 : 실버 3 언어 : Python 문제 링크 : https://www.acmicpc.net/problem/11047 N, K = map(int, input().split()) coin = [] for _ in range(N): coin.append(int(input())) cnt = 0 num = K for i in range(N-1, -1, -1): if num == 0: break if num - coin[i] >= 0: cnt += (num // coin[i]) num = num % coin[i] print(cnt) 그리디 문제. 역순으로 동전을 빼나가면서 현재 값을 갱신하며 동전의 개수 또한 세줌. 자칫하면 시간초과가 날 수 있으므로 효율적인 코드가 중요한 것 같다.

BOJ 2022.05.23

백준 5014. 스타트링크 [Python]

문제 : 스타트링크 난이도 : 골드 5 언어 : Python 문제 링크 : https://www.acmicpc.net/problem/5014 from collections import deque ''' 총 높이 : F 현재 층 : S 건물 위치 : G 위로 U만큼 : U 아래로 D만큼 : D ''' def bfs(s): queue = deque() queue.append(s) while queue: p_s = queue.popleft() # 해당 층 수 찾으면 횟수 return if p_s == G: return visited[p_s] # U, D 0일때를 포함시켜버리면 횟수가 늘어나버리므로 U, D != 0 # 0층은 존재하지 않으므로 p_s - D 의 최소는 1이 돼야함 (p_s-D > 0) # bf..

BOJ 2022.05.05

JavaScript의 주요 개념 정리(문법)

JavaScript 변수와 식별자 let 재할당 할 예정인 변수 선언 시 사용 변수 재선언 불가능 블록 스코프 const 재할당 할 예정이 없는 변수 선언 시 사용 변수 재선언 불가능 블록 스코프 블록 스코프 if, for, 함수 등의 중괄호 내부를 가리킴 블록 스코프를 가지는 변수는 블록 바깥에서 접근 불가능 let x = 1 if (x === 1) { let x = 2 console.log(x) // 2 } console.log(x) // 1 데이터 타입 자바스크립트의 모든 값은 특정한 데이터 타입을 가짐 (크게 원시타입, 참조타입으로 분류) 원시타입(Primitive type) 객체(object)가 아닌 기본 타입 변수에 해당 타입의 값이 담김 다른 변수에 복사할 때 실제 값이 복사됨 숫자, 문자열..

Javascript & React 2022.04.26

백준 2609. 최대공약수와 최소공배수 [Python]

문제 : 최대공약수와 최소공배수 난이도 : 실버 5 언어 : Python 문제 링크 : https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net N, M = map(int,input().split()) C = max(N, M) P_C = 1 while C > 0: if N % C == 0 and M % C == 0: N = N // C M = M // C P_C = P_C * C C -= 1 print(P_C) print(N*M*P_C)

BOJ 2022.04.19

백준 1920. 수 찾기 [Python]

문제 : 수 찾기 난이도 : 실버 4 언어 : Python 문제 링크 : https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net import sys def binary_search(target, data): start = 0 end = len(data) - 1 while start

BOJ 2022.04.17

백준 1259. 팰린드롬수[Python]

문제 : 팰린드롬수 난이도 : 브론즈 1 언어 : Python 문제 링크 : https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net while True: n_lst = input() if n_lst == '0': break n_lst2 = '' for i in n_lst: n_lst2 = i + n_lst2 if n_lst == n_lst2: print('yes') else: print('no') 반복을 통해 펠린드롬을 검사하다가 0문자열을 만났을 때 반복문을 탈출하..

BOJ 2022.04.17

백준 10164. 격자상의 경로 [Python]

문제 : 격자상의 경로 난이도 : 실버 1 언어 : Python 문제 링크 : https://www.acmicpc.net/problem/10164 10164번: 격자상의 경로 입력의 첫째 줄에는 격자의 행의 수와 열의 수를 나타내는 두 정수 N과 M(1 ≤ N, M ≤ 15), 그리고 ○로 표시된 칸의 번호를 나타내는 정수 K(K=0 또는 1 < K < N×M)가 차례로 주어지며, 각 값은 공백으 www.acmicpc.net def circle(n, m, c): if c == 0: for i in range(1, n): for j in range(1, m): lst[i][j] = lst[i - 1][j] + lst[i][j - 1] return lst[n-1][m-1] else: if c == m or ..

BOJ 2022.04.16

백준 10989. 수 정렬하기 3 [Python]

문제 : 수 정렬하기 3 난이도 : 실버 5 언어 : Python 문제 링크 : https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net import sys N = int(sys.stdin.readline()) lst = [0] * (10000+1) for _ in range(N): i = int(sys.stdin.readline()) lst[i] += 1 for i in range(1, 10000+1): for j in range(lst[i]): print(i) 메모리 ..

BOJ 2022.04.07
LIST