일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 수학
- 해시를 사용한 집합과 맵
- 브루트포스 알고리즘
- 구현
- 임의 정밀도 / 큰 수 연산
- 스택
- 자료 구조
- 큰 수 연산
- 시뮬레이션
- 정렬
- 별 찍기
- 연결리스트 중복제거
- 실패함수
- 연결리스트 정렬
- 문자열
- KMP알고리즘
- LeetCode 83번
- 다이나믹 프로그래밍
- 큐
- Queue
- 조합론
- LeetCode 83 c언어
- 유클리드 호제법
- LeetCode Remove Duplicates from Sorted List in c
- 재귀
- 프로그래머스
- 문자열제곱
- 이분 탐색
- 정수론
- 사칙연산
- Today
- Total
hahn
단계별로 풀어보기(1차원 배열) 본문
슬슬 조금 난이도가 올라가는 거 같아서 2번째부터는 코드를 복사해서 이클립스로
테스트해보면서 했다. 일단 이 정도는 손 코딩이 가능해야 하니까
웹에 작성을 먼저 하는 걸로
1. 최소, 최대
nextInt, nextLine 이거 같이 사용하면 이상함.
잘 생각하고 쓰자.
2. 최댓값
최댓값과 최댓값이 몇 번째로 입력된 건지 구하는거였는데
멍청하게 문제 잘못 읽어서 2번째로 입력된 숫자가 몇 번째로 큰 수인지 구하고 있었음;
3. 숫자의 개수
숫자의 개수를 어떻게 구할까 고민하다가
for 문 이용해서 계속 10으로 나누는 방법을 생각해냄.
근데 얘가 몇 자리인지 알 수가 없어서 log10 이용 후 버림 처리함.
4. 나머지
예제 입력에 따라 예제 출력과 출력이 일치하게 나오는데
왜 통과를 못하는지 모르겠음.
반례를 찾아봐야 할 듯?
일단 얘는 arr 모두 순회하면서 일치하는 애는 -1로 바꾸고
(입력이 음이 아닌 정수기 때문에 -1로 설정함)
-1 만나면 result-- 후 break 하게 함.
그러나 마지막 인덱스까지 순회하면 result--가 불가능하기에
마지막에 체크하는 거 하나 넣어줌.
--해결함--
Botherahn :: 단계별로 풀어보기(1차원 배열 - 나머지) (tistory.com)
5. 평균
6. OX퀴즈
문제를 대충 읽어서 O가 가장 많이 연속된 걸 result로 출력하면 되는 줄 알았음.
뭔가 이상해서 다시 읽어보고 arr[j].length()를 모두 더하면 되는구나 했는데
그것도 잘못 이해함 ㅋㅋㅋㅋㅋㅋㅋ
이때 난 문제를 더럽게 안 읽는구나 하고 멘붕왔음.
예시가 이거였는데 1 + 2+ 3을 보고
멘붕와서 생각하기 귀찮아 for 문 하나 더 때려 박음.
7. 평균은 넘겠지
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int testCaseCount = sc.nextInt(),
testCaseDetailCount,
avg;
double overAvgCount;
int[] arr;
for(int i = 0; i < testCaseCount; i++){
testCaseDetailCount = sc.nextInt();
arr = new int[testCaseDetailCount];
avg = 0;
overAvgCount = 0;
for(int j = 0; j < testCaseDetailCount; j++){
arr[j] = sc.nextInt();
avg += arr[j];
}
avg /= testCaseDetailCount;
for(int j = 0; j < testCaseDetailCount; j++){
if(arr[j] > avg) overAvgCount++;
}
System.out.printf("%.3f%%\n", overAvgCount / testCaseDetailCount * 100);
}
}
}
슬슬 코드가 길어져서 캡처가 안 된다.
분명 맞은 거 같은데 자꾸 틀리길래 다시 생각해 보니까
변수 초기화를 안 해줬다.
제발 중첩 for문 쓸 때는 초기화 좀 하자...
+%%는 printf 사용 시 %기호 출력하는 방법이니 까먹지 말자.
+%f double 출력이다 c에서는 %lf라는데 뭐 암튼 헷갈리지 말자.
'코딩테스트 연습 > 백준(JAVA)' 카테고리의 다른 글
단계별로 풀어보기(함수) (0) | 2021.08.22 |
---|---|
단계별로 풀어보기(1차원 배열 - 나머지) (0) | 2021.08.22 |
단계별로 풀어보기(while문) (0) | 2021.08.21 |
단계별로 풀어보기(for문) (0) | 2021.08.21 |
단계별로 풀어보기(if문) (0) | 2021.08.21 |