분류 전체보기 387

[백준 알고리즘] 2444번 : 별 찍기 - 7, c++

https://www.acmicpc.net/problem/2444 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net c++로 백준 2444번 문제를 풀어보겠다. 1. N을 입력받는다. 2. 먼저 for문을 통해 공백문자를 출력하고 별을 출력하는 순으로 윗부분 반을 출력하고, 또 다른 for문을 통해 아래 부분을 더 출력한다. 코드는 다음과 같다.

C++ 2022.05.14

[백준 알고리즘] 2747번 : 피보나치 수, c++

https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net c++로 백준 2747번 문제를 풀어보겠다. 처음에 작성한 코드는 다음과 같다. 맞을 거라고 생각했지만 '시간 초과' 라고 떴다. 알고리즘의 시간복잡도를 해결해야했다. 이 부분은 서치를 통해 해결했다. 이를 해결하기 위해서는 "동적 계획법"을 사용해야만 했다. "DynamicProgrammingDynamicProgramming(동적계획법)"은 Memoization을..

C++ 2022.05.13

[백준 알고리즘] 4447번 : 좋은놈 나쁜놈, c++

https://www.acmicpc.net/problem/4447 4447번: 좋은놈 나쁜놈 비키니시티에는 초능력을 가진 수퍼 히어로들로 바글바글하다. 스폰지밥과 패트릭은 주어진 문자열로 좋은놈과 나쁜놈을 골라내려 한다. 스폰지밥: 우와, 문자열에서 강한 힘이 느껴지는데! www.acmicpc.net c++로 백준 4447번을 풀어보겠다. 1. 문자열의 g, b 개수를 세어 그에 맞는 출력값을 출력한다. 코드는 다음과 같다.

C++ 2022.05.12

[백준 알고리즘] 1764번 : 듣보잡, c++

https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net c++로 백준 1764번 문제를 풀어보겠다. - 시간초과 , 다시 시도하기 - 코드는 다음과 같다.

C++ 2022.05.11

[백준 알고리즘] 10824번 : 네 수, c++

https://www.acmicpc.net/problem/10824 10824번: 네 수 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) www.acmicpc.net c++로 백준 알고리즘 10824번 문제를 풀어보겠다. 1. 문자열 A, B, C, D를 입력받는다. 2. 각각 두개씩 문자열의 더해 합친다. 3. 새로운 문자열 A의 인덱스에 하나씩 for문을 통해 접근하며 int형의 숫자로 변환한다. 4. 새로운 문자열 C의 인덱스에 하나씩 for문을 통해 접근하며 int형의 숫자로 변환한다. 5. 두 수의 합을 구해 출력한다. 이 문제에서 중요한 점: 계산 중에 int형의 범위를 벗어나게 되므로, zero와 sum 변수의 데이터 타입을 long ..

C++ 2022.05.10

[백준 알고리즘] 1918번 : 후위 표기식, c++

https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net c++로 백준 1918번 문제를 풀어보겠다. 문제 수식은 일반적으로 3가지 표기법으로 표현할 수 있다. 연산자가 피연산자 가운데 위치하는 중위 표기법(일반적으로 우리가 쓰는 방법이다), 연산자가 피연산자 앞에 위치하는 전위 표기법(prefix notation), 연산자가 피연산자 뒤에 위치하는 후위 표기법(postfix notation)이 그것이다. 예를 들어 중위 표기법으로 표현된 a+b는 ..

C++ 2022.05.09

[백준 알고리즘] 1068번 : 트리, c++

https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net c++로 백준 1068번 문제를 풀어보겠다. 문제 트리에서 리프 노드란, 자식의 개수가 0인 노드를 말한다. 트리가 주어졌을 때, 노드 하나를 지울 것이다. 그 때, 남은 트리에서 리프 노드의 개수를 구하는 프로그램을 작성하시오. 노드를 지우면 그 노드와 노드의 모든 자손이 트리에서 제거된다. 예를 들어, 다음과 같은 트리가 있다고 하자. 현재 리프 노드의 개수는 3개이다. (초록색 색칠된 ..

C++ 2022.05.08

[백준 알고리즘] 5176번 : 대회 자리, c++

https://www.acmicpc.net/problem/5176 5176번: 대회 자리 이번 ACM-ICPC 대회의 자리는 참가자들이 직접 정한다. 참가자들은 예비 소집일에 자신이 원하는 자리를 미리 정해놓았고, 대회 당일에 어제 적어놓은 자리에 앉으면 된다. 여러명이 같은 자리를 www.acmicpc.net c++로 백준 5176번 문제를 풀어보겠다. 문제 이번 ACM-ICPC 대회의 자리는 참가자들이 직접 정한다. 참가자들은 예비 소집일에 자신이 원하는 자리를 미리 정해놓았고, 대회 당일에 어제 적어놓은 자리에 앉으면 된다. 여러명이 같은 자리를 적어논 경우에는, 먼저 도착한 사람이 그 자리에 앉게되고, 앉지 못한 사람은 대회에 참가할 수 없다. 각 사람이 선호하는 자리가 주어졌을 때, 대회에 참가..

C++ 2022.05.08

[백준 알고리즘] 2399번 : 거리의 합, c++

https://www.acmicpc.net/problem/2399 2399번: 거리의 합 첫째 줄에 n(1 ≤ n ≤ 10,000)이 주어진다. 다음 줄에는 x[1], x[2], x[3], …, x[n]이 주어진다. 각각은 0 이상 1,000,000,000 이하의 정수이다. www.acmicpc.net c++로 백준 2399번 문제를 풀어보겠다. 문제 수직선에 n개의 점이 찍혀 있다. 각각의 점의 x좌표가 주어졌을 때, n2개의 모든 쌍에 대해서 거리를 더한 값을 구하는 프로그램을 작성하시오. 즉, 모든 i, j에 대해서 |x[i] - x[j]|의 합을 구하는 것이다. 입력 첫째 줄에 n(1 ≤ n ≤ 10,000)이 주어진다. 다음 줄에는 x[1], x[2], x[3], …, x[n]이 주어진다. 각각..

C++ 2022.05.07