프로그래머스

문제 링크[level 0] 피자 나눠 먹기 (3) - 120816 Note조건이 true이면 실행을 반복하는 while 문을 사용함.피자 나눠 먹기 시리즈 중 가장 간단하다고 생각됨. Keywhile 문 제출한 코드class Solution { public int solution(int slice, int n) { int answer = 1; while(slice * answer
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/131705 Note 가능한 경우의 수를 모두 탐색하고 조건에 부합하는 경우를 카운트 하기. 제출한 코드 class Solution { public int solution(int[] number) { //세 자리의 경우의 수 a, b, c int a = 0; int b = 0; int c = 0; int sum = 0; // 세 개의 수 합 //포문 삼중으로 쓰기 : i,j,k 변수 사용 //조건식은 다음 자리 수를 뺀기 위해 i는 길이-2까지, j는 길이 -1까지 //sum이 0이 되면 answer ++ int answer = 0; for(int i = 0; i
문제 프로그래머스/2/42842. 카펫 Note 어떻게 풀지 너무나도 고민했다... 처음에 미지수를 너무 많이 둬서 뱅글뱅글 돌았다. 으윽 하지만 결국 내가 생각해낸 방법으로 해결! 왠지 훨씬 쉬운 방법이 있을 것 같고 그것이 충격적일 것 같아서, 다른 사람 풀이는 천천히 봐야겠다... Key yellow의 인수(=yellow의 가로세로) 제출한 코드 class Solution { public int[] solution(int brown, int yellow) { //yellow 의 세로 l, 가로 yellow/l int l = 1; //answer = {yellow/l+2, l+2} //brown = 2(yellow/l) + 2l + 4 //yellow의 인수를 하나씩 넣어서 brown 식 충족하면 a..
문제 프로그래머스/1/12922. 수박수박수박수박수박수? Note 다른 사람 풀이가 재밌었다. 어떻게든 풀 수 있다는 소소한 응원도 되었다. 처음 떠오르는 방법으로 코드를 쓰고 채점하고나니 삼항연산자로도 할 수 있었다는 생각이 났다. 아직 기본 if문이 더 익숙하니 그냥 풀면되지만 삼항연산자를 사용하면 한 줄 더 줄일 수 있으니, 다음엔 떠올려보면 좋겠다:) Key String.join("",str); 제출한 코드 import java.util.*; class Solution { public String solution(int n) { String answer = ""; String[] str = new String[n]; for(int i = 0; i
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/120888 KeyStringBuilderHashSetcontains() 제출한 코드import java.util.*;class Solution { public String solution(String my_string) { Set mySet = new HashSet(); StringBuilder builder = new StringBuilder(); for(char c : my_string.toCharArray()){ if(mySet.contains(c)) continue; mySet.add(c)..
문제 프로그래머스/1/147355. 크기가 작은 부분문자열 Note 숫자 type 주의, long type을 잘 쓰자. 오늘은 type이 문제일 것을 빨리 찾아냄. 문자열을 숫자로 바꿔 줄 때 메소드에서의 숫자 타입도 신경쓰자. Key Long.parseLong(); str.substring(a); str.substring(a,b); 제출한 코드 처음 제출한 코드는 일부 런타임 에러가 떠서 틀렸다. 다시 잘 보니 기껏 long으로 선언했던 배열 인자를 Integer로 가져오고 있는 모습 발견 import java.util.*; class Solution { public int solution(String t, String p) { int answer = 0; int pleng = p.length(); /..
문제 프로그래머스/1/12948. 핸드폰 번호 가리기 Note 배열과 문자열 사이를 자유롭게 오갈 수 있게 되었다. Key .split() .toCharArray(); String.valueOf(arr); 제출한 코드 import java.util.*; class Solution { public String solution(String phone_number) { String answer = ""; //String 배열에 담는다. //배열 길이의 -4만큼의 인덱스까지의 인자는 *로 바꾼다. //배열을 문자열로 변환한다. String[] num = phone_number.split(""); for(int i = 0;i
문제 링크 [level 1] 문자열 내 p와 y의 개수 - 12916 Note 간단한 문제, 변수를 1개만 사용(count)하고 각 조건문에서 count를 더하고 빼서 비교하는 방법도 있다. Key string.charAt() string.toLowerCase() string.toUpperCase() 제출한 코드 class Solution { boolean solution(String s) { boolean answer = true; //s 모두 소문자화 //p, y 갯수 세기 //비교하기 //1. s 모두 소문자 s = s.toLowerCase(); //2. s에서 p, y 개수 세기 int countP = 0 , countY = 0; for(int i = 0 ; i < s.length() ; i++)..
문제 링크[level 1] 자연수 뒤집어 배열로 만들기 - 12932 Note숫자를 한 자리씩 끊을 방법으로 % 10 을 하고 몫은 다시 n에 대입하는 방식 선택long 타입의 숫자는 .length() 사용이 불가능 해서 string 타입으로 바꿔서 길이를 사용했다. KeyString s = n + ""; : 숫자를 String 타입으로 만들어 준다 제출한 코드class Solution { public long[] solution(long n) { //n을 10으로 나눈 나머지를 answer에 하나씩 담는다. String N = n +""; //n의 길이를 사용하기 위해 string으로 변환 long[] answer = new long[N.length()]; ..
Syntax variable = (condition) ? expressionTrue : expressionFalse; 삼항연산자 사용 class Solution { public int solution(int num1, int num2) { int answer = 0; if((0