티스토리 뷰
봉우리
#include <iostream>
#include <vector>
#include <algorithm>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int a[51][51];
int dx[4]={-1, 0, 1, 0};
int dy[4]={0, 1, 0, -1};
int main() {
//freopen("input.txt", "rt", stdin);
int n, i, j, k, cnt=0, tmp, flag;
scanf("%d", &n);
for(i=1; i<=n; i++){
for(j=1; j<=n; j++){
scanf("%d", &a[i][j]);
}
}
for(i=1; i<=n; i++){
for(j=1; j<=n; j++){
flag=0;
for(k=0; k<4; k++){
if(a[i][j]<=a[i+dx[k]][j+dy[k]]){
flag=1;
break;
}
}
if(flag==0) cnt++;
}
}
printf("%d ", cnt);
return 0;
}
내가 짰던 코드도 비슷하게 구성은 되어있다.
몰랐던 점은 a배열을 전역변수로 넣으면 0으로 자동으로 초기화된다는것
생각하지 못했던 점은 상하좌우로 봉우리값과 비교하면서 하나라도 크면 break시켜버리는 것
이렇게 처리하지 않아서 timelimit가 났었다.
채점해서 timelimit가 났다면 break를 활용해서 단축시킬 수 있는 포인트가 있는지 꼭 확인해봐야겠다.
각 행의 평균과 가장 가까운 값
#include <iostream>
#include <vector>
#include <algorithm>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int a[9][9];
int main() {
//freopen("input.txt", "rt", stdin);
int i, j, avg, tmp, min, val, sum, res;
for(i=1; i<=9; i++){
sum=0;
for(j=1; j<=9; j++){
scanf("%d", &tmp);
a[i][j] = tmp;
sum+= tmp;
}
avg=(sum/9.0)+0.5;
printf("%d ", avg);
min=2147000000;
for(j=1; j<=9; j++){
val=abs(a[i][j]-avg);
if(min>val){
min=val;
res=a[i][j];
}
else if(min==val){
if(res<a[i][j]) res=a[i][j];
}
}
printf("%d\n", res);
}
return 0;
}
avg를 구할 때 반올림 하는 법을 고민했다.
정수를 실수로 나누면 실수가 되며 0.5를 더하면 avg자체가 int로 되어있기 때문에 반올림되는 결과를 볼 수 있다.
'lecture > algorithm - c++' 카테고리의 다른 글
[c++] 영지선택 small, large (0) | 2020.12.30 |
---|---|
[c++] 블록의 최대값 (0) | 2020.12.29 |
[c++] 공주구하기, 멀티 태스킹 (0) | 2020.12.27 |
[c++] 뮤직비디오, 마구간 정하기 (0) | 2020.12.26 |
[c++] scanf("%d %d", &a, &b)와 scanf("%d %d\n", &a, &b)차이 (0) | 2020.12.26 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Java
- 동적프로그래밍
- 병행프로세스
- react
- 인접행렬
- C
- 소프트웨어
- 배열
- 구조체
- 교착상태
- 스텍
- 퀵정렬
- 클래스
- 자료구조
- 재귀함수
- server side rendering
- C++
- 입출력장치
- Stack
- 알고리즘
- 인접리스트
- 이진탐색
- javascript
- BFS
- 세마포어
- stackframe
- 운영체제
- 최단경로
- dfs
- client side rendering
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
글 보관함