728x90

java 48

[프로그래머스] 이상한 문자 만들기

문제 풀이 split() 함수를 사용하여 문자열 s를 하나씩 나누어 문자열 배열 str에 할당. 각 인덱스 값과 공백일 때 0으로 초기화 해주기 위해서 변수 idx 생성. str의 길이만큼 반복문 사용. 배열 str의 i번째 인덱스가 공백일 때 0으로 초기화. 변수 idx(인덱스)가 짝수일 때 toUpperCase() 함수 사용으로 대문자로 변환하고 인덱스값 증가. 홀수일 때 소문자로 변환하고 인덱스값 증가. 문자열 answer에 값 할당. 답안 class Solution { public String solution(String s) { String answer = ""; String[] str = s.split(""); int idx = 0; for(int i = 0; i < str.length; i+..

programmers/Lv.1 2024.04.19

[프로그래머스] 3진법 뒤집기

문제 풀이 문자열 thr은 정수 n을 3진수로 바꿔 초기화. 바꾼 3진수를 뒤집어 넣어줄 문자열 rev 생성. 반복문을 통해 문자열 thr의 끝에서 -1 부터 문자열 rev에 추가. 거꾸로 넣은 문자열 rev를 다시 10진수로 바꿔 answer에 할당. 답안 class Solution { public int solution(int n) { int answer = 0; String thr = Integer.toString(n, 3); String rev = ""; for(int i = thr.length() - 1; i >= 0; i--){ rev += thr.charAt(i); } answer = Integer.parseInt(rev, 3); return answer; } }

programmers/Lv.1 2024.04.18

[프로그래머스] 같은 숫자는 싫어

문제 풀이 Integer 타입의 Stack sta 초기화. 배열 arr의 길이만큼 반복문 사용. 스택 sta가 비어있거나 가장 위에 있는 값(peek)이 i번째 인덱스의 값과 같지 않을 때, 스택 sta에 push() 사용하여 배열 arr의 i번째 값을 추가. 배열 answer를 스택 sta의 크기만큼 초기화. 스택의 특성상 마지막에 들어간 요소가 먼저 나오기 때문에 거꾸로 넣어주는 반복문 사용. pop() 사용하여 배열 answer에 스택 sta의 크기 -1 만큼 (인덱스 0부터) 빼줌. 답안 import java.util.*; public class Solution { public int[] solution(int []arr) { Stack sta = new Stack(); for(int i = 0;..

programmers/Lv.1 2024.04.11

[프로그래머스] 폰켓몬

문제 풀이 중복된 값을 자동으로 제거해주는 HashSet 사용. 향상된 for문으로 nums의 정수 값들을 hash에 추가. 이 과정에서 중복된 값 자동 제거. hash의 크기가 nums배열의 길이 / 2 보다 크다면 nums배열의 길이 / 2 반환. 답안 import java.util.*; class Solution { public int solution(int[] nums) { int answer = 0; HashSet hash = new HashSet(); for(int num : nums){ hash.add(num); } if(hash.size() > nums.length / 2){ answer = nums.length / 2; }else{ answer = hash.size(); } return ..

programmers/Lv.1 2024.04.08

[프로그래머스] 2016년

문제 풀이 문자열 배열 day에 금요일부터 선언. 정수형 배열 month 선언(1월부터). 총 일수 total이라는 변수 선언. 반복문 a - 1까지 -1은 배열은 0부터 시작이므로, 배열 month i번째 인덱스를 총 일수에 할당함으로써 a월 제외하고 모든 월의 일 수의 합이 됨. 총 일수에 제외한 a월의 b - 1일을 더함. day 배열에서 총 일수 % 7하여 값 반환. 답안 class Solution { public String solution(int a, int b) { String[] day = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"}; int[] month = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}..

programmers/Lv.1 2024.04.03

[프로그래머스] 카드 뭉치

문제 풀이 cards1, cards2 각각 인덱스값 변수 index1, index2로 선언. 배열 goal의 길이만큼 반복문 사용. 변수 index1이 배열 cards1의 길이보다 작고, goal의 i번째 인덱스가 cards1의 index1번째 인덱스가 , index1 증감문. else if문으로 index2, cards2 또한 같음. 답안 class Solution { public String solution(String[] cards1, String[] cards2, String[] goal) { String answer = "Yes"; int index1 = 0; int index2 = 0; for(int i = 0; i < goal.length; i++){ if(index1 < cards1.len..

programmers/Lv.1 2024.04.03

[프로그래머스] 추억 점수

문제 풀이 배열 answer를 photo의 행의 길이로 초기화. 첫번째 반복문은 이차원 배열 photo의 행의 길이만큼, 두번째 반복문은 photo[i]의 열의 길이만큼, 세번째 반복문은 배열 name의 길이만큼. 이차원 배열 photo에서 equals() 함수 사용하여 배열 name과 같다면 answer i번째 인덱스에 yearning k번째를 더함. 답안 class Solution { public int[] solution(String[] name, int[] yearning, String[][] photo) { int[] answer = new int[photo.length]; for(int i = 0; i < photo.length; i++){ for(int j = 0; j < photo[i].l..

programmers/Lv.1 2024.04.02

[프로그래머스] 명예의 전당 (1)

문제 풀이 배열 answer를 score 배열의 길이로 초기화. 새로운 정수 타입 list 생성. score길이만큼 반복문 사용. score 인덱스 0번째 부터 list에 값 추가. list의 크기가 k보다 크다면, Collections.min() 함수 사용으로 list에서 가장 작은 값 제거. 배열 answer에 list에서 가장 작은 값 할당. 답안 import java.util.*; class Solution { public int[] solution(int k, int[] score) { int[] answer = new int[score.length]; List list = new ArrayList(); for(int i = 0; i < score.length; i++){ list.add(sco..

programmers/Lv.1 2024.04.01

[프로그래머스] [1차] 비밀지도

문제 풀이 배열의 길이는 n과 다 같으므로 배열 answer를 n의 길이로 초기화. n길이만큼 반복문 사용 toBinaryString() 함수를 사용하고, 논리연산자 | (or)를 사용하여 배열 arr1과 arr2 둘 다 이진법으로 바꾸어 할당. format()함수를 사용하여 answer 배열에 저장되어있는 이진법의 왼쪽에 n만큼 0 할당. replace() 함수를 사용하여 1은 #으로, 0은 공백으로 바꿈. 답안 import java.util.*; class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; for(int i = 0; i < n; i++){ answer[i..

programmers/Lv.1 2024.03.29
728x90