'전체 글'에 해당되는 글 192건

  1. 2019.07.20 백준 15552 - 빠른 A+B
  2. 2019.07.20 백준 8393 - 합
  3. 2019.07.20 백준 10950 - A+B - 3
  4. 2019.07.20 백준 10817 - 세 수
  5. 2019.07.20 백준 2884 - 알람 시계
  6. 2019.07.20 백준 2753 - 윤년
  7. 2019.07.20 백준 9498 - 시험 성적
  8. 2019.07.20 백준 1330 - 두 수 비교하기
2019. 7. 20. 16:11
728x90

문제 번호: 15552

문제 제목: 빠른 A+B

문제 주소: https://www.acmicpc.net/problem/15552


문제 내용

최대 100만회의 입출력을 제한 시간 내에 수행하라


테스트 케이스

5
1 1
12 34
5 500
40 60
1000 1000


2
46
505
100
2000


문제 풀이

실제 사용 시에는 체감하기 어렵지만 반복문을 돌리게 될 경우 입출력 함수를 어떻게 사용하냐에 따라 성능 차이가 크게 나는 경우가 많은데, 약간의 조치만으로도 성능이 크게 향상되는 것을 볼 수 있다.
cin, cou의 경우에는 cin.tie(NULL), sync_with_stdio(false)를 둘 다 적용해 주고, endl은 \n으로 대신하는 식으로 작성할 경우 그렇게 하지 않았을 때에 비해 성능이 크게 향상되는 것을 볼 수 있다. 이 경우 scanf와 printf는 사용하지 않도록 해야하며, 작동환경도 싱글 스레드 환경이어야 한다. 만약 그럴 수 없는 상황이라면 C표준입출력 함수들을 사용하여야 한다.
실제 100만번을 돌렸을 때의 환경으로 테스트 해보고 싶다면 #이 글을 참고하여 파일을 생성한 후 테스트를 수행해보도록 하자.


풀이 코드

728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 2741 - 기찍 N  (0) 2019.07.20
백준 2741 - N 찍기  (0) 2019.07.20
백준 8393 - 합  (0) 2019.07.20
백준 10950 - A+B - 3  (0) 2019.07.20
백준 10817 - 세 수  (0) 2019.07.20
Posted by 아야카
2019. 7. 20. 15:57
728x90

문제 번호: 8393

문제 제목: 합

문제 주소: https://www.acmicpc.net/problem/8393


문제 내용

1부터 N까지의 합을 출력한다.


테스트 케이스

1

1

10

55

500

125250

5050

12753775

10000

50005000


문제 풀이

수학 공식이 존재하므로 해당 공식으로 결과를 출력해도 무방하다. 이럴 경우 복잡도가 O(n)에서 O(1)로 바뀐다.


풀이 코드

728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 2741 - N 찍기  (0) 2019.07.20
백준 15552 - 빠른 A+B  (0) 2019.07.20
백준 10950 - A+B - 3  (0) 2019.07.20
백준 10817 - 세 수  (0) 2019.07.20
백준 2884 - 알람 시계  (0) 2019.07.20
Posted by 아야카
2019. 7. 20. 15:48
728x90

문제 번호: 10950

문제 제목: A+B - 3

문제 주소: https://www.acmicpc.net/problem/10950


문제 내용

T회만큼 A B를 입력받아 A+B를 출력한다.


테스트 케이스

5
1 1
2 3
3 4
9 8
5 2


2
5
7
17
7


문제 풀이

int T를 선언하여 값을 입력 받은 후 for문을 T회만큼 반복한다.
for문에서는 A와 B의 값을 입력 받고 A + B를 출력한다.


풀이 코드



728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 15552 - 빠른 A+B  (0) 2019.07.20
백준 8393 - 합  (0) 2019.07.20
백준 10817 - 세 수  (0) 2019.07.20
백준 2884 - 알람 시계  (0) 2019.07.20
백준 2753 - 윤년  (0) 2019.07.20
Posted by 아야카
2019. 7. 20. 15:42
728x90

문제 번호: 10817

문제 제목: 세 수

문제 주소: https://www.acmicpc.net/problem/10817


문제 내용

입력 받은 세 개의 수 중에서 두 번째로 큰 수를 출력한다.


테스트 케이스

1 2 3

2

1 3 2

2

2 1 3

2

2 3 1

2

3 1 2

2

3 2 1

2

1 1 2

1

1 2 1

1

2 1 1

1

1 2 2

2

2 1 2

2

2 2 1

2

1 1 1

1


문제 풀이

간단하게 생각한다면 입력 받은 값을 정렬을 한 후 두 번째 값을 출력해주면 되지만 이 문제에서는 값이 3개만 주어지므로 정렬까지 하는건 연산 낭비가 된다.
값 입력 순서에 따라 결과가 달라질 수 있으므로 이 부분에 유의하여 코드를 작성한다.


풀이 코드



728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 8393 - 합  (0) 2019.07.20
백준 10950 - A+B - 3  (0) 2019.07.20
백준 2884 - 알람 시계  (0) 2019.07.20
백준 2753 - 윤년  (0) 2019.07.20
백준 9498 - 시험 성적  (0) 2019.07.20
Posted by 아야카
2019. 7. 20. 15:34
728x90

문제 번호: 2884

문제 제목: 알람 시계

문제 주소: https://www.acmicpc.net/problem/2884


문제 내용

입력한 시각보다 45분 빠른 시각을 출력한다.


테스트 케이스

0 44

23 59

0 45

0 0

23 44

22 59

23 0

23 0


문제 풀이

입력 시각이 0시 45분 이내 일 때는 시를 23시로 하고 분에 +15분을 한다.
그 외의 입력 시각에는 45분 이내일 때에 시를 -1하고 분에 +15를 한다.
나머지는 분에 -45를 한다.


풀이 코드



728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 10950 - A+B - 3  (0) 2019.07.20
백준 10817 - 세 수  (0) 2019.07.20
백준 2753 - 윤년  (0) 2019.07.20
백준 9498 - 시험 성적  (0) 2019.07.20
백준 1330 - 두 수 비교하기  (0) 2019.07.20
Posted by 아야카
2019. 7. 20. 15:16
728x90

문제 번호: 2753

문제 제목: 윤년

문제 주소: https://www.acmicpc.net/problem/2753


문제 내용

입력 받은 연도가 윤년인지 아닌지 출력한다.
윤년은 아래와 같이 구성된다.
 > 400의 배수일 경우 윤년, 100의 배수일 경우 평년, 4의 배수일 경우 윤년, 그 외에는 평년.


테스트 케이스

1

0

4

1

8

1

10

0

100

0

400

1

1000

0

4000

1


문제 풀이

조건이 여러가지가 걸려 있는 경우 조건의 우선순위를 따져서 분기문을 배치해야 한다.

우선순위를 따지지 않고 분기문을 배치할 경우 예외처리를 위한 코드가 많아져서 전체적으로 지저분해진다.


풀이 코드



728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 10817 - 세 수  (0) 2019.07.20
백준 2884 - 알람 시계  (0) 2019.07.20
백준 9498 - 시험 성적  (0) 2019.07.20
백준 1330 - 두 수 비교하기  (0) 2019.07.20
백준 2588 - 곱셈  (0) 2019.07.20
Posted by 아야카
2019. 7. 20. 15:05
728x90

문제 번호: 9498

문제 제목: 시험 성적

문제 주소: https://www.acmicpc.net/problem/9498


문제 내용

입력 받은 수에 따라 그에 해당하는 등급을 출력한다.


테스트 케이스

100

A

90

A

89

B

80

B

79

C

70

C

69

D

60

D

59



문제 풀이

if ~ else if를 이용해 푸는 것이 정석이지만 if 문에서 바로 return이 되거나 break를 하는 경우라면 if만 사용해도 무방하다.
코드 작성 후 테스트 할 때는 경계값 위주로 테스트를 진행하면 된다.


풀이 코드

728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 2884 - 알람 시계  (0) 2019.07.20
백준 2753 - 윤년  (0) 2019.07.20
백준 1330 - 두 수 비교하기  (0) 2019.07.20
백준 2588 - 곱셈  (0) 2019.07.20
백준 10430 - 나머지  (0) 2019.07.20
Posted by 아야카
2019. 7. 20. 15:01
728x90

문제 번호: 1330

문제 제목: 두 수 비교하기

문제 주소: https://www.acmicpc.net/problem/1330


문제 내용

입력 받은 두 수의 결과를 비교하여 결과를 출력한다.
먼저 입력받은 숫자가 왼쪽에 있는 것을 기준으로 한다.


테스트 케이스

1 2

<

2 1

>

1 1

==


문제 풀이

입력 받는 수의 범위가 -10000 ~ 10000이므로 1바이트 변수는 사용할 수 없다.
두 수가 동일할 때의 결과가 == 인 것에 주의한다.


풀이 코드


728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 2753 - 윤년  (0) 2019.07.20
백준 9498 - 시험 성적  (0) 2019.07.20
백준 2588 - 곱셈  (0) 2019.07.20
백준 10430 - 나머지  (0) 2019.07.20
백준 10869 - 사칙연산  (0) 2019.07.20
Posted by 아야카