목록코딩테스트/자바 (46)
100세까지 코딩
문제 설명 풀기 전 생각 배열 생성 후 하나씩 저장 Arrays.sort를 사용하여 정렬 후 최대값(M)찾기 배열을 순회하며 총합 구하기 계산식을 묶어 (총합 * 100 / M / N) 으로 평균 구하기 import java.util.Arrays; import java.util.Scanner; public class Baek1546 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] arr = new int[N]; int sum = 0; for(int j = 0; j < arr.length; j++){ arr[j] = sc.nextInt(); } Arrays.sor..
문제 설명 풀기 전 생각 공백없는 숫자를 나머지 연산과 나누기 연산을 반복하여 끝부터 더해 나가기 반복 횟수는 입력받은 숫자의 개수만큼 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int i = sc.nextInt(); int j = sc.nextInt(); int sum = 0; while(i > 0){ sum += j % 10; j /= 10; i--; } System.out.println(sum); } } 오류 및 개선 브론즈4인 것을 보고 너무 쉽게 생각해 바로 코딩한 것이 문제 숫자의 개수 N이 100까지 입력될 수 있다..
문제 설명 풀기 전 생각 attedance가 true인 학생들의 index값(번호)을 배열리스트에 저장하기 2차원 배열을 만들어 등수와 번호를 함께 저장 등수를 기준으로 오름차순 정렬하여 top 3명의 번호를 구하기 class Solution { public int solution(int[] rank, boolean[] attendance) { ArrayList arr = new ArrayList(); int answer = 0; for(int i = 0; i < rank.length;i++){ if(attendance[i]){ // true면 arr.add(i); // index값을 넣어줌 } } int[][] rankArray = new int[arr.size()][arr.size()]; // 2차원..
문제 설명 풀기 전 생각 먼저 배열을 오름차순 정리를 한 뒤, 주어진 n 값과 가장 차이가 없는 값 (min)을 구하기 min값을 배열 처음에 넣고 min값을 기준으로 오른쪽, 왼쪽 거리 비교해 나가기 오름차순이니깐 left, right 거리가 같으면 right를 우선 배치 왼쪽이나 오른쪽이 끝지점에 다다르면 반대편 나머지 값을 순차적으로 복사해 주기 class Solution { public int[] solution(int[] numlist, int n) { int[] answer = new int[numlist.length]; int nearIndex = 0; // n값과 가장 가까운 값의 index int min = 10000; // n값과 가장 가까운 값 int k = 0; // 정답 배열에 넣..
문제 설명 풀기 전 생각 최대 r자릿수만큼 String을 만들어 각각 자리에 0과 5를 대입하려고 생각 하지만 그 방법을 2시간 고민했지만 안 나옴.. 고민하다가 깨달은 규칙은 처음에 5를 넣고 그 후 10을 곱하여 앞에 들어간 숫자들을 각각 더하면 5와 0으로 만들어진 숫자들로만 구성 5와 0으로 만들어진 list를 l과 r로 시작점과 끝점을 찾아 배열에 복사해 주기 class Solution { public int[] solution(int l, int r) { ArrayList list = new ArrayList(); int k = 5; int start = 0; int end = 0; while(k
문제 설명 풀기 전 생각 반복문을 사용하여 i = 1부터 n까지 반복하기 i가 +1 증가할 때마다 3x 마을에서 쓰는 숫자도 +1 해주기 3x 마을에서 쓰는 숫자 +1 했는데도 3의 배수거나 3이 포함되면 또 +1 해주기 포함여부는 3x 마을에서 쓰는 숫자를 String으로 바꾸고. contains() 메서드 사용 class Solution { public int solution(int n) { int answer = 0; for(int i = 1 ; i