일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 2차원배열
- springSecurity
- codingtest
- 시큐리티 로그인
- css
- 스프링 부트
- 코딩테스트
- StyleSheet
- 싱글톤
- input태그
- 반복문
- Linux
- programmers
- html
- springboot
- sql
- 로그인
- 프로그래머스
- security
- JAVA11
- 리눅스
- java
- Spring boot
- 시큐리티로그인
- gradle
- 시큐리티 로그아웃
- 시큐리티
- javascript
- 소스트리
- 목록
Archives
- Today
- Total
JAVAIARY
반복문, 배열 본문
// 코드를 만들 때 보기 편하라고 안내문구를 적었지만 제출시에는 주석처리하고 제출해야함!!
문제번호1110더하기사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. |
AplusB1110
import java.util.Scanner;
public class Main {
static int M;
static int N;
public static int calM (int num) {
M = num / 10;
return M;
}
public static int calN (int num) {
N = num % 10;
return N;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("숫자를 입력하세요.");
int num = scan.nextInt();
int result = 0;
int count =0;
int num1 = num;
while (result != num) {
Main.calM(num1); // 2 6 8
Main.calN(num1); // 6 8 4
result = N * 10 + Main.calN(M + N); // 68 84 42
count++;
num1 = result;
}
System.out.println(count);
scan.close();
}
}
문제번호4344평균은넘겠지
문제대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
|
import java.util.Scanner;
public class BiggerThanAvg4344 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int C = scan.nextInt();
int n = 0; //배열의 길이
for (int i = 0; i < C; i++) {
double ttl = 0; //케이스별 점수들의 합
int count = 0; //비율 계산해 줄 count
n = scan.nextInt();
int[] arr = new int[n];
for (int j = 0; j < arr.length; j++) {
arr[j] = scan.nextInt();
ttl += arr[j];
}
for(int score : arr) {
if (score > (double)ttl/n) {
count++;
}
}
System.out.println(String.format("%,.3f", (double)count/(double)n*100) + "%");
}
scan.close();
}
}
애먹었던 부분
ttl += arr[j];
if (score > (double)ttl/n) //1
avg += (double)arr[j]/n;
if (score > avg) //2
1번과 같이 모든 합을 받아서 n으로 나눈 것과 비교하지 않고
2번처럼 미리 나눈 것을 합쳤을 경우 반례가 생김
1 5 11111 //반례
2번으로 작성해서 위 반례를 입력하면 avg가 1이 나와야 할 것 같지만 아니다.
문제번호8958OX퀴즈
import java.util.Scanner;
public class OXQuiz8958 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("퀴즈 갯수 입력");
int n = scan.nextInt();
String[] arr = new String[(n+1)];
int count = 0;
int subtotal=0;
System.out.println("퀴즈입력");
scan.nextLine();
for (int i = 0; i < n ; i++) {
arr[i] = scan.nextLine();
for (int j = 0; j < arr[i].length(); j++) {
if (arr[i].charAt(j) == 'O') {
count ++;
subtotal += count;
}
else
count = 0;
}
System.out.println(subtotal);
subtotal =0;
count=0;
}
scan.close();
}
}
배열.charAt(n)
- 배열의 n번째 인덱스를 문자열로 변환해주는 메서드 !
애먹었던 부분
nextLine();
사용시 주의점이 있었다.
https://itbeginner2020.tistory.com/23
nextint() 를 사용하면서 입력된 엔터가 남아있어 nextline() 이 그 엔터를 그대로 받아 사용자가 입력하기도 전에 넘어가버리는 문제
nextline()을 앞에 한 번 더 작성해 주는 방법으로 해결했다.
문제번호3052나머지
문제두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.
출력첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.
|
import java.util.Scanner;
public class Remainder3052 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] list = new int[10];
for (int i = 0; i < 10; i++) {
list[i] = scan.nextInt() % 42;
}
int count = 0;
for (int i = 0; i < list.length; i++) {
for (int j = i+1; j < list.length; j++) {
if (list[i] == list[j]) {
count++;
break;
}
}
}
scan.close();
System.out.println(10-count);
}
}
'examplePractice' 카테고리의 다른 글
프로그래머스) lv.2 올바른 괄호 (0) | 2023.01.23 |
---|---|
함수 (0) | 2022.12.15 |
반복문, 배열 (0) | 2022.10.02 |
조건문, 반복문, 삼항연산자, 배열, 2개리턴 (0) | 2022.09.10 |
반복문 연습 1 (0) | 2022.08.21 |