백준
[8958] OX퀴즈
🍃 문제 8958번: OX퀴즈 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 � www.acmicpc.net 🍃 해결 방법 1. testcase의 범위가 주어져 있지 않으므로 각 testcase 마다 string으로 한 줄씩 입력받는다. 2. 한 줄씩 입력받을 때마다 점수를 계산해주는 run 함수를 호출 3. 'O'인 경우 O가 나온 개수인 cnt를 1만큼 증가시키고, 이 값을 sum에 더해준다. 4. 'X'가 나온 경우 O의 개수는 처음부터 다시 세주어야 하므로 cnt를 0으로 초기화시킨다. 🍃 내 코드(C++) // [8958] OX..
[1546] 평균(C)
https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 🏖 내 코드(C) // [1546] 평균 // https://www.acmicpc.net/problem/1546 #include int main(void) { int n, tmp, m = 0; double sum = 0, score[1001]; scanf("%d", &n); // 원래 점수 for(int i = 0 ; i < n ; i++) { scanf("%lf", &score[i]); i..
[3052] 나머지
https://www.acmicpc.net/problem/3052 3052번: 나머지 문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서�� www.acmicpc.net 🏝 해결방법 1. 수를 입력받는 동시에 그 수를 42로 나눈 나머지를 num 벡터에 저장 2. 벡터를 오름차순으로 정렬( 헤더의 sort 함수 사용) 3. 벡터 전체를 앞에서부터 탐색하면서 다른 수가 나올 때마다 cnt 증가 4. cnt 출력 🏖 내 코드(C++) // [3052] 나머지 // https://www.acmicpc.net/problem/30..
[13567] 로봇(C++)
문제 로봇은 명령어를 읽어들여 정사각형 영역 S를 x축 또는 y축과 평행한 방향으로 움직인다. S의 왼쪽 아래 꼭짓점은 (0, 0)이고, 오른쪽 위의 꼭짓점은 (M, M)이다. 처음에 로봇은 (0, 0)에 위치해 있고, 동쪽 방향을 향하고 있다. 명령어는 로봇이 현재 위치에서 행할 동작과 그 동작과 관련된 값으로 주어진다. 동작은 두 가지가 있는데, TURN과 MOVE이다. TURN 0 명령은 현재 위치에서 왼쪽으로 90도 회전, TURN 1 명령은 현재 위치에서 오른쪽으로 90도 회전을 의미한다. MOVE d 명령은 로봇이 향하고 있는 방향으로 d만큼 움직이는 것을 의미한다. 여기서 d는 양수이다. 명령의 수행 후 로봇이 S의 경계 또는 내부에 있으면 이 명령어는 유효하다. 만일 명령어 수행 후 로봇이..
[3053] 택시 기하학(C++)
https://www.acmicpc.net/problem/3053 3053번: 택시 기하학 문제 19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = |x1-x2| + | www.acmicpc.net 💡 내 코드(C++) //[3053] 택시 기하학 // https://www.acmicpc.net/problem/3053 // 택시 기하학 -> 원은 마름모 모양 -> 원의 넓이 = 2*r*r #include #include using namespace std; #define M_PI 3.14159265358979323846 int main(void) ..
[1149] RGB거리
https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 💡 내 코드(C++) //RGB거리 //https://www.acmicpc.net/problem/1149 //dp #include #include using namespace std; int main(void) { int n, red, green, blue; int cost[3][1001] = { 0, }; cin >> n; cin >> cost[0][0] >> cost[1]..
![[1032] 명령 프롬프트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEuoao%2FbtqE0ON4wQL%2FGU2t76rkyoh1CHjFcpHgi0%2Fimg.png)
[1032] 명령 프롬프트
https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 �� www.acmicpc.net 💡 내 코드(C++) // [1032] 명령 프롬프트 // https://www.acmicpc.net/problem/1032 #include #include using namespace std; int n; // number of files(n > n; temp = n; while (temp--) { cin >> fileName[temp]; } if (n == 1) cout
[10996] 별 찍기 - 21
🍃 문제 바로가기 🔎 해결 방법 우선 규칙성을 찾아야 한다. n이 1부터 4까지일때 각각의 경우를 잘 살펴보면 빈칸 뒤에 *이 따라오는 것을 볼 수 있는데 맨 처음 칸에만 빈칸 없이 *이 바로 오는 것을 볼 수 있다! 따라서, n이 어떤 값으로 들어오던지 *을 먼저 찍어주고 그 이후에 첫 줄과 둘째 줄에 [ 빈칸 + * ] 쌍이 몇 개가 나와야 하는지만 찾으면 끝! 1) n = 1 2) n = 2 [ 빈칸 + * ] 쌍이 첫 줄에 0개, 둘째 줄에 1개가 와야 하고 이 패턴이 총 2번 반복된다. 3) n = 3 [ 빈칸 + * ] 쌍이 첫 줄에 1개, 둘째 줄에 1개가 와야 하고 이 패턴이 총 3번 반복된다. 4) n = 4 [ 빈칸 + * ] 쌍이 첫 줄에 1개, 둘째 줄에 2개가 와야 하고 이 패턴이..