728x90 반응형 EVERYTHING196 JAVA 프로그래머스 [순서쌍의 개수] Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 순서쌍의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/120836 해결 과정 우선 이중 for문을 이용해 i*j가 20이 되는 경우에 answer ++를 이용하여 순서쌍의 개수를 1씩 증가시켜준다 하지만 이 부분에서 몇개의 테스트 케이스가 시간초과가 나왔다. 이중 for문에서 반복하는 도중에 시간초과가 나왔다고 생각하고 어떠한 조건을 벗어났을 때 break를 이용하여 반복횟수를 줄여야 한다고 생각했다. 그래서 if문 하나를 추가하여 i*j가 20을 초과했을 때 break;문을 이용하여 속 for문을 탈출시켜준 결과 통과할 수 있었다. 소스 코드 class Solution { publ.. 2023. 5. 29. JAVA 프로그래머스 [배열 자르기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 배열 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/120833 해결 과정 우선 배열 answer의 크기는 num2-num1+1 로 지정할 수 있다. 반복문으로 사용하여 i를 num1 부터 num2 까지 반복하면서 배열 answer에 배열 numbers 에서 해당하는 값들을 하나씩 넣어준다 answer을 return 하게 되면 알맞은 답이 된다. 소스 코드 class Solution { public int[] solution(int[] numbers, int num1, int num2) { int[] answer = new int[num2-num1+1]; int k = 0; for(.. 2023. 5. 29. JAVA Doit 알고리즘 코딩테스트 자바 편 - Day8 05 탐색 05-1 깊이 우선 탐색 05-2 너비 우선 탐색 2023. 5. 29. JAVA 프로그래머스 [외계행성의 나이] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 외계행성의 나이 https://school.programmers.co.kr/learn/courses/30/lessons/120834 해결 과정 이 문제는 먼저 StringBuilder를 이용하여 풀어보려 한다. 먼저 age 각 자리의 수를 해당 알파벳으로 변환하기 위하여 1의 자리수부터 가져오기로 한다. int k를 age를 10으로 나눈 나머지수로 선언 을 해준다 만약, 23의 경우 23%10 = 3이 된다 이 3을 char형으로 변환해 주어야 한다 만약 k가 0일 경우 -> k+'a' 는 그대로 a로 나타낼수 있다 k가 1일 경우 -> 1+'a'이므로 b로 나타낼 수 있다. 이렇게 char형으로 변환한 값을 StringBuilder sb에 i.. 2023. 5. 29. JAVA 프로그래머스 [진료순서 정하기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 진료순서 정하기 https://school.programmers.co.kr/learn/courses/30/lessons/120835 해결 과정 먼저 배열 answer의 크기를 배열 emergency의 크기로 선언해준다 다음 이중 for문을 사용하여 각 원소가 본인을 포함한 다른 원소보다 작거나 같을 때 해당 자리와 같은 answer 자리에 1씩 추가해준다. 만약 {3, 76, 24}의 경우 3은 3, 76, 24보다 작거나 같다. 그러므로 총 3을 더해줘서 3의 순서는 3이 된다. 이렇게 모든 원소를 반복해주면 해당 순서인 배열 answer이 나오게 된다. 소스 코드 class Solution { public int[] solution(int[].. 2023. 5. 29. JAVA 프로그래머스 [짝수의 합] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 짝수의 합 https://school.programmers.co.kr/learn/courses/30/lessons/120831 해결 과정짝수는 2로 나누었을 때 나머지가 0이므로 해당 조건을 반복하여 만족할 때만 answer(합)에 누적으로 더해주면 된다. 소스 코드 class Solution { public int solution(int n) { int answer = 0; for (int i = 1; i 2023. 5. 28. JAVA 프로그래머스 [양꼬치] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 양꼬치 https://school.programmers.co.kr/learn/courses/30/lessons/120830 해결 과정 10인분을 먹으면 음료수 1개를 서비스로 준다 만약 n인분과 음료수 k개를 먹었다면 금액은 (12000n + 2000k)이 된다 하지만 10인분을 먹을 때마다 음료수 1개를 서비스로 준다고 했으니 만약 23인분이라고 하면 23을 10으로 나눈 몫에 해당하는 값을 음료수 k에서 빼주면 된다 최종으로 총 가격은 (12000n+ 2000(k-n/10) 원이 된다. 소스 코드 class Solution { public int solution(int n, int k) { int answer = 0; answer = 1200.. 2023. 5. 28. JAVA Doit 알고리즘 코딩테스트 자바 편 - Day7 04 정렬 04-5 병합 정렬 04-6 기수 정렬 2023. 5. 28. JAVA 프로그래머스 [각도기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 각도기 https://school.programmers.co.kr/learn/courses/30/lessons/120829 해결 과정 해당 사항에 따라 각도를 4개로 나눈 후, 조건문으로 answer을 각각의 값으로 초기화 해주면 된다. * 여기서 주의할 점은, 90 미만의 각도 조건 시 0 초과인 부분도 && 을 사용하여 실행해줘야 한다 - > angle > 0 && angle < 180 소스 코드 class Solution { public int solution(int angle) { int answer = 0; if (angle < 90) { answer = 1; } else if (angle == 90) { answer = 2; } els.. 2023. 5. 28. JAVA 프로그래머스 [특정 문자 제거하기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 특정 문자 제거하기 https://school.programmers.co.kr/learn/courses/30/lessons/120826 해결 과정 먼저 나는 StringBuilder를 이용하여 문제를 해결하였다 우선 sb 생성 후 반복문에서 문자열의 각 문자와 letter의 한 문자를 비교하도록 한다. letter와 같은 문자를 제거해야하므로, 같지 않을 때의 문자들을 sb에 append()를 이용하여 넣어준다 return은 sb.toString(); 으로 작성하여 출력한다. 다른 사람의 풀이를 보니 문자열의 부가적인 기능 중 하나인 replace를 사용하여 해결하였다. 문자열.replace( a, b); 를 하게 되면 a의 값이 b의 값으로 바.. 2023. 5. 28. JAVA 프로그래머스 [문자 반복 출력하기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 문자 반복 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/120825 해결 과정 반복문을 돌면서 각 문자당 n만큼 반복한 문자열을 반환하는 문제이다. 우선 반복문을 통해 my_string.charAt(i); 을 이용해 문자열의 각 문자를 j < n 까지 반복하면서 각 문자를 n개 만큼 반복시켜 answer에 추가해준다. 그리고 answer을 리턴하면 된다. 소스 코드 class Solution { public String solution(String my_string, int n) { String answer = ""; for (int i = 0; i < my_string.leng.. 2023. 5. 28. JAVA 프로그래머스 [짝수 홀수 개수] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 짝수 홀수 개수 https://school.programmers.co.kr/learn/courses/30/lessons/120824 해결 과정 우선 배열 answer을 {0,0} 으로 초기화해준다. 그리고 반복문을 돌리면서 만약 num_list[i] % 2 == 0 (짝수) 라면 answer[0] += 1 을 해주고 홀수 라면 answer[2] += 1을 해준다. 소스 코드 class Solution { public int[] solution(int[] num_list) { int[] answer = {0,0}; for (int i = 0; i < num_list.length; i++) { if ( num_list[i] % 2 == 0) { an.. 2023. 5. 27. JAVA 프로그래머스 [직각삼각형 출력하기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 직각삼각형 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/120823 해결 과정 Scanner로 받아온 n을 반복문을 사용하여 1부터 n까지 " * "을 찍는다. i는 0부터 n 미만까지 실행되도록 하고, 이중 for문으로 j는 i+1 미만까지 실행되도록 한다. 별을 한줄에 여러개를 찍는 것은 System.out.print("*"); 로 개행없이 사용하면 되고 다음 줄로 넘어가려면 System.out.priniln(); 을 사용하여 개행하면 된다. 소스 코드 import java.util.Scanner; public class Solution { public static void .. 2023. 5. 27. JAVA 프로그래머스 [문자열 뒤집기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 문자열 뒤집기 https://school.programmers.co.kr/learn/courses/30/lessons/120822 해결 과정 우선 문자열을 배열로 변환하는 과정이 필요하다. 먼저 answer 배열을 만들기 위해 문자열의 길이인 my_String.length(); 을 사용한다. 문자열의 글자를 char 타입으로 받아오기 위해 java.lang.String 클래스의 charAt() 메소드를 사용한다. (이 메소드는 문자열의 i번째 문자를 char 타입으로 리턴 할 수 있음) for (int i = 0; i < my_string.length(); i++) { sep[i] = my_string.charAt(i); } 그리고 answer .. 2023. 5. 27. JAVA Doit 알고리즘 코딩테스트 자바 편 - Day6 04 정렬 04-3 삽입 정렬 04-4 퀵 정렬 2023. 5. 27. JAVA 프로그래머스 [배열 뒤집기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 배열 뒤집기https://school.programmers.co.kr/learn/courses/30/lessons/120821 해결 과정 먼저 num_list 배열의 크기만큼 answer 배열을 생성한다. 반복문을 돌면서 num_list의 값들을 answer의 반대되는 순서로 넣어준다. answer배열을 return 해준다. 소스 코드 class Solution { public int[] solution(int[] num_list) { int[] answer = new int[num_list.length]; for (int i = 0; i 2023. 5. 26. JAVA 프로그래머스 [나이 출력] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 나이 출력 https://school.programmers.co.kr/learn/courses/30/lessons/120820 해결 과정 먼저 2000년을 기준으로 생각하기 위해 age에서 2022년도의 22를 빼준후 1을 빼준다. 태어난 년도 계산을 위해 이 값을 2000에서 빼주면 된다. 소스 코드 class Solution { public int solution(int age) { int answer = 0; answer = 2000-(age-22-1); return answer; } } 2023. 5. 26. JAVA 프로그래머스 [아이스 아메리카노] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 아이스 아메리카노 https://school.programmers.co.kr/learn/courses/30/lessons/120819 해결 과정 아이스 아메리카노 잔수를 k로 하고, 반복문에서 money를 5500으로 나누었을 때 몫이 0이라면 더이상 살수 없는 경우를 나타내므로 break; 를 이용하여 반복문을 빠져나온다. 반복문을 돌며 money에서 5500을 뺄 때마다 i를 +1해주고 이것을 k(잔수)로 대입해준다. 배열은 k, money로 이루어져 있으므로, 다 구해진 후 answer 배열을 선언하고 초기화해주면 된다. 소스 코드 class Solution { public int[] solution(int money) { int k = 0.. 2023. 5. 26. JAVA Doit 알고리즘 코딩테스트 자바 편 - Day5 04 정렬 04-1 버블 정렬 문제 015 수 정렬하기 1 백준 2750번 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 01단계 1. 문자열 형태로 입력값을 받음 2. 문자 배열로 변환 3. 문자 배열값을 순서대로 읽으면서 숫자형으로 변환하여 더함 * 문자열을 숫자형으로 변경하려면? - 아스키코드에서 같은 의미의 문자와 숫자의 드 값 차이는 48이다. - ex) 문자'1'을 숫자 1로 변환하려면 '1'-48 또는 '1'-'0' 으로연산 02단계 0.. 2023. 5. 26. 이전 1 ··· 5 6 7 8 9 10 11 다음 728x90 반응형