본문 바로가기

algorithm

(49)
[C++] BOJ 2579 계단 오르기 문제 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 코드 #include #include using namespace std; // 0: 앞계단 안밟음(1연), 1: 앞계단 밟음(2연) int dp[305][2]; int main() { int n; cin >> n; cin >> dp[1][0]; dp[1][1] = dp[1][0]; cin >> dp[2][0]; dp[2][1] = dp[1][0] + dp[2][0]; for (int i = 3; i >..
[Python] BOJ 2920 음계 문제 https://www.acmicpc.net/problem/2920 2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net 코드 asc = False desc = False chord = input().split() for i in range(len(chord) - 1): if chord[i] chord[i+1]: desc = True if asc and desc: print("mixed") else: ..
[Python] BOJ 2675 문자열 반복 문제 https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 코드 #2675 T = int(input()) for i in range(T): R, S = input().split() R = int(R) for j in range(len(S)): print(S[j]*R, end='') print() 풀이방법 주어진 그대로 구현했다 고민과정 알고리즘 문제 풀 때 파이썬을 너무 안쓰는 것 같아서 연습차 풀어봤다.
[C++] BOJ 1026 보물 문제 백준 1026번 보물 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 코드 #include #include using namespace std; int n, a[55], b[55]; int main() { cin >> n; for (int i = 0; i > a[i]; for (int i = 0; i > b[i]; sort(a, a + n); sort(b, b + n); int re..
[C++] BOJ 11656 접미사 배열 문제 백준 11656번 접미사 배열 https://www.acmicpc.net/problem/11656 코드 #include #include #include #include using namespace std; string str; int main() { cin >> str; vector suffix; int len = str.length(); for (int i = 0; i < len; i++) { string s = str.substr(i, len); suffix.push_back(s); } sort(suffix.begin(), suffix.end()); for (int i = 0; i < len; i++) cout
[C++] BOJ 15889 호 안에 수류탄이야!! 문제 백준 15889번 호 안에 수류탄이야!! https://www.acmicpc.net/problem/15889 15889번: 호 안에 수류탄이야!! 게임이 조용히 마무리 될 수 있으면 “권병장님, 중대장님이 찾으십니다”를, 그렇지 않으면 “엄마 나 전역 늦어질 것 같아”을 출력한다. www.acmicpc.net 코드 #include #include using namespace std; int pos[30003], dist[30003]; bool visited[30003]; int main() { int n; cin >> n; for (int i = 0; i > pos[i]; if (n == 1) { cout > dist[i]; int next = dist[i] + pos[i..
[C++] BOJ 20040 Cycle Game 문제 백준 20040 사이클 게임 https://www.acmicpc.net/problem/20040 20040번: 사이클 게임 사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임 시작 시 0 부터 n − 1 까지 고유한 www.acmicpc.net 코드 #include using namespace std; int n, m; bool cycle = false; int parent[500001]; int findUnion(int x) { if (parent[x] == x) return x; return parent[x] = findUnion(parent[x]); } void makeUnion(int x, ..
[C++] BOJ 13023 ABCDE 문제 백준 13023번 ABCDE https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 코드 #include #include using namespace std; int n, m; vector v[2001]; bool visited[2001]; bool res=false; void init(){ for(int i=0; i> n >> m; while (m--){ int a, b; cin >> a >> b; v[a].push_back(b); v[b].push_back(a); } for(int i=0;i