본문 바로가기

Algorithm

(400)
[프로그래머스(Java)] 약수의 합 Level. 1 문제 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해 주세요. 풀이 class Solution { public int solution(int n) { int answer = 0; int min = n; if(n==1) return 1; for(int i=1; i
[프로그래머스] 자연수 뒤집어 배열로 만들기 / valueOf,() toString() Level. 1 문제 풀이 class Solution { public int[] solution(long n) { String str= String.valueOf(n); //String str = Long.toString(n); int[] answer = new int[str.length()]; int index = 0; while(n>0){ answer[index++] = (int)(n%10); n /= 10; } return answer; } } String.valueOf(), toString() String.valueOf(), toString() 은 Object 값을 String 형으로 변환할 때 주로 사용하는 메서드이다. String.valueOf(), toString() 등을 이용하면 숫자를 문..
[프로그래머스] 콜라 문제 Level. 1 문제 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가? 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. 콜라를 받기 위해 마트에 주어야 하는 병 수 - a 빈 병 a개를 가져다주면 마트가 주는 콜라 병 수 - b 상빈이가 가지고 있는 빈 병의 개수 - n 이 매개변수로 주어집니다. 상빈이가 받을 수 있는 콜라의 병 수를 return 하도록 solution 함수를 작성해 주세요. 풀이 #include #include using namespace std; int solution(int a, int b, int n) { int answer = 0; while(n>=a){ answer += (n/a * b); n ..
[프로그래머스] 영어 끝말잇기 Level.2 문제 구해야 하는 값 : [가장먼저 탈락하는 사람의 번호, 자신의 몇 번째 차례에 탈락하는지] 풀이 #include #include #include #include using namespace std; vector solution(int n, vector words) { vector answer = {0,0}; map map; string word = words[0]; map[word]++; int index; for(index=1; index 1){ break; } } else break; } if(index!=words.size()){ answer[0] = index%n+1; answer[1] = index/n+1; } return answer; } n : 게임에 참가한 사람 수 wor..
[프로그래머스] 문자열 나누기 Level. 1 문제 풀이 #include #include #include using namespace std; int solution(string s) { int answer = 0; char c = s[0]; int scount = 1, ocount = 0; cout
[프로그래머스] 제일 작은 수 제거하기 / Stream Level. 1 문제 풀이 class Solution { public int[] solution(int[] arr) { if(arr.length == 1){ int[] answer = {-1}; return answer; } int[] answer = new int[arr.length-1]; int minIdx=0; for(int i=1; iarr[i]) minIdx = i; } for(int i=0;i
[프로그래머스] 문자열 내 p와 y의 개수 / Stream , chars() , filter() Level. 1 문제 풀이 class Solution { boolean solution(String s) { s = s.toLowerCase(); boolean answer = true; int count = 0; for(int i=0; i 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count(); } } Java의 기본 문자 어레이를 chars()를 통해 스트림으로 변환하고, filter()를 통해 원하는 자료만 필터링하여 한줄코드로 해결했다. chars() chars()는 CharSequence 인터페이스로부터 파생한 String 클래스의 새로운 메서드이다. chars()는 기본적으로 IntStream을 반환하여, 문자어레이를 스트림으로 만들 때 사용..
[프로그래머스] 삼총사 / DFS Level.1 문제 풀이 class Solution { static boolean[] visited = new boolean[13]; static int ans = 0; public void dfs(int[] number, int idx, int sum, int count){ if(count == 3){ if(sum == 0) ans++; return; } for(int i=idx; i