https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 그리디 알고리즘 브루트포스 알고리즘 ⊙ 문제 접근 과정 딕셔너리를 사용해줬다. 가장 높은 알파벳 순서대로 9부터 시작해주니 시작 값은 9로 설정 (num 변수) 그리고 딕셔너리에 값이 없으면 10의 제곱승을 추가해준다. 제곱승은 입력받은 길이에 따라 달라지고 for문을 한바퀴 돌 때마다 하나씩 줄어든다. 그리고 마지막에 딕셔너리를 ..
https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 구현 정렬 ⊙ 문제 접근 과정 배열에 값들을 전부 저장해주고 제일 먼저 정렬을 했다. 그다음은 첫 번째 조건인 평균을 구하기 위해 sum 함수를 사용하여 간단히 구해주었고, 두 번째 조건은 배열의 개수가 홀수개이기에 N//2를 하여 바로 출력해주었다. 정렬은 이미 실행되어 있으니. 세 번째 조건은 Counter를 사용했는데 처음 사용해봤다. colle..
https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 그래프 이론 다익스트라 ⊙ 문제 접근 과정 가장 짧은 경로를 구하는 문제다. 다익스트라 알고리즘으로 풀면 된다. heapq 라이브러리를 사용해 우선순위 큐를 구현하자! 입력받은 출발점을 기준으로 각 정점간의 최소비용을 구해준 후, 도착지점의 최소 비용을 출력해주면 된다. ⊙ 문제 풀이 import sys..
https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 그래프 이론 다익스트라 ⊙ 문제 접근 과정 최단거리를 구하는 알고리즘 중 다익스트라를 사용해 문제를 풀었다. 다익스트라 함수를 만들 때, 시작값만 입력해주면 돌아가게끔 설계했다. 깔끔하게 3파트로 나누어 풀었다. 다익스트라 구현부, 입력부, 출력부 ⊙ 문제 풀이 import sys from heapq..
https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 구현 자료 구조 스택 ⊙ 문제 접근 과정 크기 비교만 해주면 된다. 역으로 해서 나보다 크기가 크면 갱신해주고, count를 세주자. count의 초기값은 1이다. 맨 앞에 있는 건 무조건 보이기 때문이다. ⊙ 문제 풀이 import sys input = sys.stdin.readline N = int(input()) stack = [] fo..
https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 브루트포스 알고리즘 ⊙ 문제 접근 과정 사실 브론즈 문제 치고 좀 어려웠다. list(map(int, str(i)))를 생각하기가 어려웠다. 파이썬에선 str함수만 생각한다면 쉽긴 하다. 본인 숫자와 str함수를 이용해 각 자리수의 합을 N과 비교하여 값을 찾아가면 된다. 브루트포스 알고리즘이니 범위는 1부터..
https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 구현 기하학 ⊙ 문제 접근 과정 두 개의 배열을 만들어준다. 두 개의 배에 값을 각각 저장해 준 후 개수에 따라 판별해준다.하나인 것을 찾아내어 그 값을 result 값으로 설정하여 x, y를 출력해준다. ⊙ 문제 풀이 X = [] Y = [] for i in range(3): x, y = map(int, input().split()) X.append(x) Y.append(y) for i in range(3): if ..
https://www.acmicpc.net/problem/11758 11758번: CCW 첫째 줄에 P1의 (x1, y1), 둘째 줄에 P2의 (x2, y2), 셋째 줄에 P3의 (x3, y3)가 주어진다. (-10,000 ≤ x1, y1, x2, y2, x3, y3 ≤ 10,000) 모든 좌표는 정수이다. P1, P2, P3의 좌표는 서로 다르다. www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 기하학 ⊙ 문제 접근 과정 외적으로 풀면 된다!! p1, p2, p3의 좌표를 입력받고 각각 교차해서 곱해줘서 다 더하고 그 값끼리 빼주면 된다. 그 값이 양수면 1, 음수면 -1, 같다면 0 출력 ⊙ 문제 풀이 arr = [list(map(int, input().spl..
https://www.acmicpc.net/problem/6549 6549번: 히스토그램에서 가장 큰 직사각형 입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음으로 주어진다. (1 ≤ n ≤ 100,000) 그 다음 n개의 정수 h1, ..., hn (0 ≤ hi ≤ www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 자료 구조 세그먼트 트리 분할 정복 스택 ⊙ 문제 접근 과정 왼쪽부터 차례대로 검색해준다. 스택에 최솟값을 넣어주고 그 값이랑 비교했을 때, pop을 하며 최댓값을 찾아가면 된다. 고민하다가 코드로 구현이 힘들어 인터넷을 활용한 문제다. ⊙ 문제 풀이 from collections..
https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 자료 구조 스택 ⊙ 문제 접근 과정 힌트를 보고 이해했다. 만약 문제가 이해하기 힘들면 힌트를 바로 보자. 힌트: 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, pu..
- Total
- Today
- Yesterday
- 알고리즘
- 해답
- OS
- 운영체제
- JS
- 정리
- 문자열
- 풀이
- CPP
- 우종정
- 정렬
- Python
- java
- 구현
- 연습문제
- 자바스크립트
- 자바
- C++
- 쉽게배우는자바프로그래밍
- 파이썬
- 쉽게배우는
- 프로그래머스
- 그리디
- 정답
- 쉽게 배우는 자바 프로그래밍
- 답
- 백준
- BFS
- Web
- py
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |