코딩테스트 40

[프로그래머스] 직사각형 별찍기 - JS

문제 https://programmers.co.kr/learn/courses/30/lessons/12969 코딩테스트 연습 - 직사각형 별찍기 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수 programmers.co.kr 🚩 해결 process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); let result = ""; for(let i = 0; i < b; i..

코딩테스트 2021.09.30

[백준/JAVA] 4344 평균 구하기

문제 풀이 입력받은 테스트케이스 수 만큼 반복문을 돌리면서 배열에 성적을 저장하고, 동시에 누적 합을 같이 구해준다. 이후에 평균 성적을 구하고 배열에 저장된 성적들과 비교한 뒤 몇 명의 학생이 평균보다 높은지 카운트하면 된다. 참고로 printf에서 "%"라는 문자를 출력하려면 %%로 적어줘야한다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 테스트케이스 수 int num = Integer.parseIn..

코딩테스트 2021.05.01

[백준/JAVA] 8598 OX퀴즈

문제 풀이 행열 문제라고 생각하고 풀었다. 주의할 점은 String 문자열에서 특정 문자를 찾는 charAt() 사용시 큰따옴표가 아닌(" ") 작은 따옴표(' ')를 써야한다. import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // TS 개수 int num = Integer.parseInt(br.readLine()); String[] str = new String[num]; for(int i=0; i

코딩테스트 2021.04.29

[백준/JAVA] 1546 평균 (StringTokenizer 주의점)

문제 해당 문제는 정말 별거 아닌 것 때문에 거의 20분을 잡아먹었다😂 바로, StringTokenizer 선언 때문이다. 나는 bufferedReader, bufferedWriter와 같은 클래스를 main메소드 상단에 위치시키는 습관이 있다. 따라서, StringTokenizer의 성격을 제대로 인지하지 못하고 같이 상단에 선언했더니 오류가 나버렸다. StringTokenizer는 문자를 잘라 토큰 형식으로 저장할 변수 바로 위에 위치시켜야 한다는 것을 제대로 배우게 되었다... 풀이 소수점 아래 숫자도 나오게 출력해야하므로 과목 개수 변수를 제외한 모든 변수는 Double형으로 설정했다. import java.io.*; import java.util.*; public class Main { publ..

코딩테스트 2021.04.29

[백준/JAVA] 3052 나머지 (배열, Hashset 사용)

문제 풀이 함수를 사용해서 푸는 방법을 몰라서 배열을 사용했지만, Hashset을 사용하면 아주 쉽고 간단하게 풀리는 문제였다. - 배열 사용 나머지 값들을 순차적으로 정리해서 뽑아내면 편할 것 같아 Arrays.sort를 사용했지만, 해당 메소드를 빼고 구현하면 오류가 나버렸다. 왜인지는 아직까지 모르겠다. 그리고 count를 1로 지정한 이유는 나머지가 없을 때(=0) 일때 1이 출력되는 예가 있었기 때문이다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new Inp..

코딩테스트 2021.04.29

[백준/JAVA] 2562 최댓값

문제 풀이 간단한 문제이다. 배열의 자리값(=인덱스)는 지정한 숫자의 -1이기 때문에 출력 시 +1된 수가 나와야한다. 따라서, 자리 값을 구하는 count 변수는 인덱스+1 값이 출력되도록 구현했다. import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int arr[] = new int[9]; for(int i=0; i

코딩테스트 2021.04.28

[백준/JAVA] 10818 최소, 최대

문제 풀이 배열을 정렬하는 Arrays.sort()를 사용해서 풀어보았다. 해당 기능을 사용하기 위해서는 java.util.Arrays를 import 해줘야한다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[] arr = new int[n]; StringTokenizer st = new StringTokenizer(br.readLi..

코딩테스트 2021.04.28

[백준/JAVA] 1110 더하기 사이클

문제 나의 접근 방법 1. 처음 수(N)의 10의 자리와 1의 자리는 10으로 나눈 몫과 나머지이다. 2. 몫과 나머지의 합은 새로운 수의 1의 자리이다. 3. 처음 수(N)의 나머지 값이 새로운 수(M)의 10의 자리이다. 4. 이러한 사이클을 체크하는 카운트 변수(CNT)가 필요하다. 정리하면 아래와 같은 수식이 완성된다. M = ( (N%10)*10 ) + ( ((N/10) + (N%10))%10 ); 주의할 점은 필자는 M을 새로운 수로 두었는데, 실제 반복문 안에서 처음 수(N)를 계속 새로운 값으로 대체하는 것이라 M을 N으로 고친다. while(true){ M = ( (N%10)*10 ) + ( ((N/10) + (N%10))%10 ); } 어렵게 느껴질 수 있지만, 생각해보면 그렇게 어려운..

코딩테스트 2021.04.27

[백준/JAVA] 11021 A+B-7 (StringTokenizer)

문제 풀이 이번에도 BufferedReader와 BufferedWriter를 사용해서 입출력을 구현할 것이다. BufferedReader는 데이터가 한 줄에 담기기 때문에 여러 데이터를 받을 때는 StringTokenizer를 사용한다. 여기서 잠깐🖐 StringTokenizer를 왜 for문 안에 작성하는지 의문이 생길 것이다. 그 이유는 for문을 통해 한 줄씩 데이터가 들어가게 되고, 최종적으로 여러 행의 데이터가 생기기 때문에 각 행 별로 데이터를 쪼개기 위함이다. import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException {..

코딩테스트 2021.04.27