갓비니

2020/04/01 코딩 문제 연습(2단계,3단계 / 백준 2884,2739,10950,8393,15552) C++ 본문

Programming/코딩 문제 풀이

2020/04/01 코딩 문제 연습(2단계,3단계 / 백준 2884,2739,10950,8393,15552) C++

갓비니 2020. 4. 1. 17:22

3/31은 밤새고 꽃구경 가느라.... 못했으므로 오늘 많이 하도록 하겠다 ㅎㅎ

 

앞으로는 하루에 진짜 적어도 한문제씩은 해야지.

꾸준함이 중요한 것이니까 ㅠㅠ

 

(2단계 5번, 3단계 1~4번)

 

<2884번 문제>

허점이 자꾸 나와서 계속 틀린 문제..... 아 .. 멍청이... 하지만 왠지 내 답도 정석같지는 않다 ㅠㅠ

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
#include <iostream> 
using namespace std
 
 
/* 2884번 문제 */
int main() { 
 
int hour=0, min = 0, a_hour=0, a_min=0
 
cin >> hour; 
cin >> min; 
 
if (hour == 0) a_hour = 23
else a_hour = hour - 1
 
a_min = min + 15
 
if (min >= 45) {
a_min = a_min - 60
a_hour = hour; 
 
cout << a_hour; 
cout << " "
cout << a_min; 
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

 

 

 

<10950번 문제>

 

 

 

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
#include <iostream> 
using namespace std;
 
/*10950번 문제*/
 
int main() { 
int number = 0
 
cin >> number; 
 
int *= new int[number]; 
int *= new int[number]; 
 
for (int i = 0; i < number; i++) { 
cin >> A[i] >> B[i]; 
for (int i = 0; i < number; i++) { 
cout << A[i]+B[i]; 
if (i == number-1
return 0
else 
cout << "\n"
 
delete[] A; 
delete[] B; 
 
}
 
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

배열의 동적할당은 new, delete를 이용한다.

할당 방법

int *arr = new int[원하는 크기];

반환 방법

delete[] = arr;

 

 

 

<8393번 문제>

 

8393번 문제. 완전 기본문젠데 뭔가 포문 넣을 떄 헷갈린다 ㅎㅎ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
 
/*8393번 문제*/
int main() {
    int n, sum=0;
    cin >> n;
 
    for (int i = 1; i <= n; i++) {
        sum = i + sum;
    }
    cout << sum;
 
 
}
 

완전 기본인건데 , n이 1이라고 하면 for(int i=1 ; i<n ; i++)  는 아예 실행조차 되지 않는다 ㅎㅎ

 

 

<155552번 문제>

문제가 왠지 빡세게 생겼다.

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
#include <iostream>
using namespace std;
 
/*155552번 문제*/
int main() {
 
    int number = 0;
 
    scanf("%d"&number);
 
    int *= new int[number];
    int *= new int[number];
 
    for (int i = 0; i < number; i++) {
        scanf_s("%d"&A[i]);
        scanf_s("%d"&B[i]);
 
    }
    for (int i = 0; i < number; i++) {
        printf("%d", A[i]+B[i]);
        printf("\n");
    }
 
    delete[] A;
    delete[] B;
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

실행 속도를 빠르게 하기 위해선, cin cout보다 C함수를 쓰는 것이 더 좋다고 하는 것을 알았다.

cin,cout --(대체)--> scanf, printf

std::endl --(대체)--> \n

 

백준에서는 scanf_s를 쓸 수 없어서 ( 비주얼 스튜디오 전용이라고 한다 ㅠㅠ, 그런데 비주얼스튜디오에서는 또 scanf는 못쓴다고 하고 ㅡㅡㅡㅡ) scnaf를 썼다.