💻 IT/📌 ALG 7

[프로그래머스] 크레인 인형뽑기 게임 :: JAVA 풀이 , Stack 이용하기

오늘은 프로그래머스 "크레인 인형뽑기 게임" 문제를 풀이를 해볼께요! 문제 풀이 문제를 보자마자 저는 Stack을 이용 해야겠다는 생각이 들었습니다. 왜냐하면 스택의 특성 "first in last out 가장 먼저 들어온게 나중에 나간다" 특성 때문입니다. 본 문제에서 인형이 차곡차곡 쌓이면서 동일한게 있으면 가장 나중에 들어온 숫자를 제거하면 되기 때문입니다. 추가적으로, moves에 있는 숫자들은 board의 세로열 index-1과 동일한 것이 파악할 수있어 2차원 배열 문제를 손쉽게 접근 할 수있습니다! import java.util.Stack; class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; in..

💻 IT/📌 ALG 2022.03.14

[프로그래머스] 숫자 문자열과 영단어 :: JAVA 풀이

오늘은 프로그래머스 "숫자 문자열과 영단어" 문제를 풀이해보겠습니다! 문제 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 풀이 요번 문제도 간단한 문자 열처리 문제입니다. 입력받은 문자열에 특정 단어("zero", "one", "two",...)가 있으면, 숫자로 변환하는 문제이네요. 처음에는 입력받은 문자를 split으로 나눈 다음에 처리할까? 생각했는데.. 그냥 replace 함수를 이용하면 자동 치환이 되니 replace함수를 사용하는 쪽으로 풀었습니다. class Solution { pub..

💻 IT/📌 ALG 2022.03.12

[프로그래머스] 신규 아이디 추천 :: JAVA 풀이

오늘은 프로그래머스 "신규 아이디 추천" 문제를 풀이해보겠습니다. 문제 풀이 요번 문제는 문자열 처리 문제입니다. 오랜만에 문자열 공부하는 겸 풀어보았습니다. 문제를 처음 읽고 아무 생각 없이 주어진 스탭 별로 접근을 하였다. public String solution(String new_id) { StringBuffer stb = new StringBuffer(new_id.toLowerCase()); /*new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다.*/ /*소문자 97~122, 숫자 48~57, 빼기 45, 밑줄 95, 마침표 46 */ for (int i = 0; i < stb.length() ; i++) { if(!((stb.charAt..

💻 IT/📌 ALG 2022.03.06

[프로그래머스] 로또의 최고 순위와 최저 순위 :: JAVA 풀이

오늘은 프로그래머스 "로또의 최고 순위와 최저 순위" 풀이를 해보겠습니다. 문제 풀이 간단한 문제인 만큼 풀이도 간단합니다. '0' 미지수를 제외하고 다 맞는 갯수를 구한 것이 최저 등수가 되겠고, 그 수에 0의 갯수를 더한것이 최대로 맞을수 있는 등수가 됩니다! public int[] solution(int[] lottos, int[] win_nums) { int rank[] = {6,6,5,4,3,2,1}; /* 등수 */ int answer[] = {0,0}; for (int i = 0; i < lottos.length; i++) { if(lottos[i]==0) answer[0]++; for (int j = 0; j < win_nums.length; j++) { if(lottos[i] == win..

💻 IT/📌 ALG 2022.03.06

[프로그래머스] 가장 큰 수 :: 정렬 이용하자

프로그래머스 Lv2 정렬 문제 '가장 큰 수' 입니다. 정렬을 이용해서 간단하게 구현하였습니다. 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr import java.util.ArrayList; class Solution { public String solution(int[] numbers) { String result = ""; ArrayList numberList = new ArrayList(); //Int to String for (int ..

💻 IT/📌 ALG 2021.08.15

[프로그래머스] 타겟넘버 Java :: Stack 이용

프로그래머스 '타겟넘버' 문제 입니다. 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr import java.util.ArrayList; import java.util.Stack; class Solution { public int solution(int[] numbers, int target) { int answer = 0; int popNum = 0; int tempNumber = 0; Stack rst = new Stack(); ArrayList lis..

💻 IT/📌 ALG 2021.08.15

[백준] 11653번 :: 소인수분해

안녕하세요 : ) 오늘은 백준 11653번 풀이를 해볼게요! 어릴 때 배웠던 소인수분해를 코딩으로 해석하면 됩니다! 입력받는 수 (72)를 소수(2,3,5 --)로 나누면서 나눠지는 수를 저장해놓고 출력하면 돼요! 자세한 내용은 코드를 참고해주세요~ import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; public class Main { public static void main(String[] args) throws Exception { ArrayList resultList = new ArrayList(); BufferedReader in = new BufferedReader(new Inpu..

💻 IT/📌 ALG 2021.02.27