Banner

My Tech Blog (Java)

📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/129211부터 입력받은 숫자 n 사이에 있느 소수의 개수 반환하는 함수 작성하기소수 : 1과 자기 자신으로만 나누어지는 수💡 2. 풀이과정boolean[] isPrime 배열 만들어서 각 수가 소수인지 아닌지 체크→ 보통 소수 판별하는 메서드나 배열은 isPrime으로 변수 명명하기처음에 2 이상 모든 수 소수라고 가정하고 시작하기→ 0, 1은 소수가 아니기 때문이다2 ~ 루트 n까지 돌면서 배수 제거하기최종적으로 true로 남아 있는 수들을 카운트하면 그게 소수 개수👨‍💻 3. 정답코드class Solution { public int solution(int n) { ..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/12930💡 2. 풀이과정내가 해결한 로직split(" ")로 s를 공백 기준으로 분리해서 String배열로 담음이렇게 하면 구분자인 공백은 제외하고 글자만 담김그래서 바깥 for문 실행 마다, 한 단어가 끝나면 뒤에 sb.append(" ")로 공백 추가단, 이렇게 하면 마지막 문자 뒤에도 공백이 붙음sb.deleteCharAt() 으로 마지막 공백 제거 첫번째시도class Solution { public String solution(String s) { // 먼저 얘를 공백 기준으로 분리해서 배열에 넣고 String[] str = s.split(" ..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/12982부서마다 신청한 금액이 담긴 배열 d그리고 예산 한도 budget이 주어진다.최대 몇 개 부서의 물품을 구매할 수 있는 지 리턴하는 문제💡 2. 풀이과정여기서 적은 금액부터 차례대로 지원해야 더 많은 부서를 커버할 수 있다.👨‍💻 3. 정답코드import java.util.*;class Solution { public int solution(int[] d, int budget) { int answer = 0; int sum = 0; Arrays.sort(d); for (int i = 0; i bud..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/12969 💡 2. 풀이과정String line = "*".repeat(n);"*".repeat(n) → 문자열 "*"을 n번 반복하는 메서드예: n = 5 → "*****"Java 11 이상에서 사용 가능👨‍💻 3. 정답코드class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 가로 int m = sc.nextInt(); // 세로 String line = "*".r..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/131705💡 2. 풀이과정3중 for문으로 서로 다른 인덱스 i, j, k를 고른 다음, 세 수의 합이 0이면 카운트 올려주기 어려운 부분은 없지만 i, j, k for문 범위 시작점이랑 끝점 주의i는 첫 번째 원소 선택 (0 ~ n-3)j는 두 번째 원소 선택 (i+1 ~ n-2)k는 세 번째 원소 선택 (j+1 ~ n-1) → 이렇게 하면 같은 원소 중복 없이 모든 조합을 탐색 가능세 원소의 합이 0이면 count++👨‍💻 3. 정답코드class Solution { public int solution(int[] number) { int count = 0; ..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/12919💡 2. 풀이과정그냥 포매팅 연습하는 문제이다.seoul배열 순회하면서 처음으로 만나는 Kim 문자열의 인덱스를 반환하면 되는 문제이다.String 포맷할 때는 `String.format("%d ", idx)` 메서드를 사용한다.class Solution { public String solution(String[] seoul) { int idx = 0; for (int i = 0; i String.format은 C언어의 printf 스타일 포맷팅을 그대로 가져온 거라서 % 기호 뒤에 여러 가지 옵션을 붙일 수 있다.String.format에서 ..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/1619891. 문제 요약벽 길이 = n (1m 단위 구역으로 나눔, 번호 1~n)롤러 길이 = m (한 번 칠하면 연속 m칸이 칠해짐)반드시 다시 칠해야 하는 구역 = section 배열조건롤러는 벽 밖으로 나가면 안 됨구역은 부분만 칠할 수 없음. (롤러 시작 위치는 항상 구역 경계에 맞춰야 함)이미 칠한 구역은 다시 칠해도 됨section에 포함된 구역은 최소 한 번은 칠해야 함최소 롤러 사용횟수 리턴💡 2. 풀이과정풀이 1n크기 만큼 boolean[] 배열을 선언해서 section 배열에 담긴 숫자 - 1에 해당하는 인덱스만 true로 바꾸었다.그리고 section을 순회하면..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/129011. 문제 요약2016년 a월 b일이 무슨 요일인지 리턴하는 함수요일 이름은 각 SUN,MON,TUE,WED,THU,FRI,SAT💡 2. 풀이과정각 달의 일수를 배열로 만들기 int[] days = {31,29,31,30,31,30,31,31,30,31,30,31};입력된 달 전까지 일수를 합산 → 총 지난 일 수 계산1월 1일부터 입력일까지 총 일수 → 요일 계산(총일수 + 기준 요일 인덱스) % 7기준 요일: 1월 1일 = 금요일 → 인덱스 5 (0=SUN)👨‍💻 3. 정답코드class Solution { public String solution(int a, i..
인절미였던것
'Java' 태그의 글 목록 (2 Page)
상단으로