[프로그래머스](java) lv2 (2017 팁스타운) 짝지어 제거하기
·
코테/java
1. 문제 설명2. 나의 풀이 import java.util.Stack; public int solution(String s) { s = s.replaceAll(" ", ""); Stack st = new Stack(); for(int i = 0; i  풀고 뿌듯해서 박수쳤는데 생각해보니까 if(i == 0 || st.empty()) 는 그냥 st.empty 하나만 있어도 되는거였다.. i가 0이면 당연히 비어있을테니까3. 다른 사람의 풀이import java.util.*;class Solution{ public int solution(String s) { // 문자열을 캐릭터 배열로 변환 char[] ..
[프로그래머스][java] lv 1 시저 암호
·
코테/java
1. 문제 설명 2. 나의 풀이1. 알파벳 대소문자를 유지하면서 입력받은 숫자에 맞게 이동2. z를 초과하면 다시 a부터 시작ascii코드를 이용해서, 조건문 설계하면 되겠다고 생각함class Solution { public String solution(String s, int n) { String answer = ""; char temp = 'a'; int over = 0;// 알파벳 대문자 65 ~90// 소문자 97 ~122 for(int i = 0; i 90) { over = (temp +n) - 90; temp = (char) (over + 64); } else..
[프로그래머스][java] lv 1 최소직사각형
·
코테/java
1. 문제 설명문제 설명명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다.아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다.명함 번호가로 길이세로 길이16050230703603048040가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지갑 크기는 4..
[프로그래머스][java] lv 1 월간 코드 챌린지 시즌1 3진법 뒤집기
·
코테/java
1. 문제 설명2. 나의 풀이 public int solution(int n) { int answer = 0; StringBuilder sb = new StringBuilder(); while(n > 0) { sb.append(n%3); n/=3; } sb.reverse(); for(int i = 0; i  3진법 자체를 처음 들어봄이진법이 0 1 이니까 3진법 0 1 2 인가봄3. 다른 사람의 풀이class Solution { public int solution(int n) { String a = ""; whi..
[프로그래머스][java] lv 1 Summer/Winter Coding(~2018) 예산
·
카테고리 없음
1. 문제 설명2. 나의 풀이import java.util.Arrays;class Solution { public int solution(int[] d, int budget) { int answer = 0; Arrays.sort(d); for(int i = 0; i  문제 설명이 너무 길어서 당연히 어려운 문제일 줄 알았는데 생각보다 쉬웠다.걍..정렬하고작은 원소부터 빼서 0 이하로 내려가면 answer --;너무 대충 적어서  통과 못한 테스트 케이스가 있을 줄 알았는데 바로 통과해서 당황3. 다른 사람의 풀이import java.util.*;class Solution { public int solution(int[] d, int budget) { ..
[프로그래머스][java] lv1 이상한 문자 만들기
·
코테/java
1. 문제 설명2. 나의 풀이class Solution { public String solution(String s) { StringBuilder sb = new StringBuilder(); int index = 0; for(int i = 0; i StringBuilder를 이용하여 매번 String 객체를 생성하지 않도록 함s 문자열을 charAt 으로 한글자씩 떼어 공백일때는 sb에 공백을 붙이고, 인덱스를 초기화 한 후 다음 반복으로 넘어가도록공백이 아니면 짝수일때 대문자, 홀수일때 소문자개선할 점 =>1. Character에도 toUpper가 있음 Character.toString(s.charAt(i)).toUpperCase() => ..
[프로그래머스][java] lv 1 부족한 금액 계산하기
·
코테/java
1. 문제 설명2. 나의 풀이public long solution(int price, int money, int count) { long tempSum = 0; for (int i = 1; i 이렇게 풀고 잘풀었다고 박수치고 있었는데3. 다른 사람의 풀이public long solution(long price, long money, long count) { return Math.max(price * (count * (count + 1) / 2) - money, 0);}등차수열의 합을 이용해서 시간복잡도를 O(n) => O(1)로 확 줄인 코드를 발견함..다음에 비슷한 문제 나오면 등차수열로 풀어야겠다