알고리즘 143

[프로그래머스] 음양 더하기 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 내가 푼 방법 그냥.... i = 0 ~ 배열의 길이 로 for문 돌리고 signs[i] = true면 +absolutes[i], 아니면 -absolutes[i] 코드 class Solution { public int solution(int[] absolutes, boolean[] signs) { int answer = 0; for(int..

[프로그래머스] 없는 숫자 더하기 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/86051?language=java 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 내가 푼 방법 구하는게 없는 숫자의 합이므로 1~9까지 더한 45에서 numbers를 모두 더한 값을 뺐다. class Solution { public int solution(int[] numbers) { int answer = 0; for(int i : numbers) answer += ..

[프로그래머스] 크레인 인형뽑기 게임 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 내가 푼 코드 결론부터 말하자면 테스트케이스 1,2에서 실패했다. 참내..... 질문하기 들어가서 사람들이 말해준 테스트케이스를 다 해봤는데도 왜 안되는지 모르겠음ㅋ 틀린 코드 import java.util.ArrayList; class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; ArrayLis..

[프로그래머스] 키패드 누르기 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 내가 푼 방법 우선 1 4 7 나오면 무조건 L, 3 6 9 나오면 무조건 R인건 자명하다. 그리고 2 5 8 0 에서 가까운걸 찾아야하니까 마지막에 누른 L과 R을 따로 저장해놓는다. 2 5 8 0 얘네가 것참 어려웠는데.. 2차원 배열을 써야하나 싶..

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

https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 내가 푼 방법 나는 글자수별로 나눠서 풀었다. 이런식으로 하나씩 읽어가며 3글자가 되었을 때 저중에 있는지 확인, 4글자 되면 저중에 확인, 5글자 확인해서 치환하기! class Solution { public int solution(String s) { int answer = 0; String alpha=""; String sub = s; // s에..

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

https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 후... 이 문제 여러가지 검색하다가 너무 오래걸려서 다른 사람꺼 보기로 했다. 테스트케이스 1개만 통과되는 개욱긴 코드 다른 사람의 코드를 구경해보니 그냥 문제에 써있는 단계대로 푸는게 좋아보인다. 나는 단계 내맘대로 만들어서 어쩌구 했는데 ㅎㅎ 그래서 망했나? https://minhamina.tistory.com/121 class Solution { ..

[Algorithm] 중복된 문자 제거하기 for JAVA

알고리즘 문제를 풀다보면 중복된 문자를 제거해야하는 경우가 많이 생긴다. 맨날 헷갈리니까 아예 정리해놓으려고 한다. import java.util.Scanner; public class duplicateChar { public static void main(String[] args) { duplicateChar main = new duplicateChar(); Scanner scan = new Scanner(System.in); String str = scan.next(); System.out.println(main.solution(str)); } public static String solution(String str) { String answer = ""; for(int i = 0; i < str.l..

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

https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 로또번호 배열 lottos[] -> 0~45 당첨번호 배열 win_nums[] -> 1~45, 같은 숫자 x 출력은 최고순위, 최저순위 순서로 출력한다. 문제를 보면 많이 맞췄을 경우는 0을 다 맞췄을 때, 거의 못맞췄을 경우는 0이 다 틀렸을 때이다. 그래서 0을 뺀 로또번호와 당첨번호를 비교해서 맞춘 개수 + 0..

[프로그래머스] 체육복 for JAVA

그리디 알고리즘에 분류되어있는 level1짜리 문제이다. 내가 풀려던 방법은 arraylist에 1~n까지의 수를 다 넣고 lost인 사람의 숫자를 없애고 reserve -1 과 +1을 비교해서 넣는 방법을 사용하려고 했는데 모든 테스트케이스를 통과하지 못했다.. 50점이었나...? 지금 보니 왜 저렇게 짰는지... 그래서 남의 코드를 봤다!! 내걸로 만들려고 리뷰할거다. 풀이1 1. 먼저 여벌 체육복을 가져온 학생이 잃어버렸으면 +-0이므로 걔네 먼저 확인해줘야한다. 2중 for문으로 lost 배열과 reserver 배열에 같은 값이 있는지 확인하고 같은 값이 있다면 answer에 +1 해주고(수업참여 가능) 두 배열 값을 -1로 초기화한다. 2. 도난당한 학생에게 체육복 빌려주기 여분이 있는 학생은 ..

[BaekJoon] 백준 11399번_ ATM for JAVA

ATM 얘도 그리디 알고리즘 문제 유형에 있는 문제이다. https://ticssfm.tistory.com/32?category=1008893 [Algorithm] 탐욕(그리디) 알고리즘 (greedy algorithm) 그리디 알고리즘은 문제를 해결하는 과정에서 가장 좋다고 생각하는 방법을 선택하는 알고리즘이다. 예를 들어 노드 값의 최대 합은 5 -> 7 -> 9를 거쳐 21임을 알 수 있다. 그러나 그리디 알고리즘 ticssfm.tistory.com 문제를 표로 만들어서 살펴보자 예시에서는 P1 = 3, P2 = 1 ... 이런식으로 5가지 수를 받았다. 이 줄을 오름차순 정렬 한 후 계산을 수행하는 것이 가장 효율적이라고 나타낸다. 그러므로 입력을 받은 후 오름차순 정렬을 하고 계산을 수행해야 하..

알고리즘/백준 2021.10.11