java 30

프로그래머스 코딩테스트 문제: 올바른 괄호

프로그래머스 level2의 문제이다. 쇠막대기라는 문제와 꽤 유사해서 한번에 stack을 사용하면 될 것 같았다. 단순하게 (와 )의 개수가 같을 것 이라고 생각하면 안된다. 개수는 맞을지라도 짝이 맞지 않으면 안되니! import java.util.*; class Solution { boolean solution(String s) { boolean answer = true; Stack stc=new Stack(); for(int i=0;i

프로그래머스 코딩테스트 문제: 문자열 내 마음대로 정렬하기

프로그래머스 코딩테스트 level1문제이다. Arrays.sort 와 comparator을 자유롭게 사용한다면 쉬운 문제이다! import java.util.*; import java.lang.*; import java.math.*; class Solution { public String[] solution(String[] strings, int n) { String[] answer = strings; Arrays.sort(answer, new Comparator(){ public int compare(String a, String b){ if((a.substring(n,n+1)).equals(b.substring(n,n+1))){ return a.compareTo(b); } return (a.subst..

프로그래머스 코딩테스트 문제: 전화번호 목록

프로그래머스 코딩테스트 level2에 해당하는 hash문제이다. 나는 hash문제라고 떡하니 적혀있어서 hash로 풀려고 노력했다. 다른사람들의 답안을 보니 그냥 순수배열로 푼 사람들이 많았다. 내가 생각하지 못한 함수들을 많이들 쓴 것 같았다. import java.util.*; class Solution { public boolean solution(String[] phone_book) { boolean answer = true; HashMap hash=new HashMap(); for(int i=0;i

프로그래머스 코딩테스트 문제: 스파이

프로그래머스 코딩테스트 level2에 해당하는 문제이다. 처음에 문제보고 당황했다... 그럼 스파이는 오늘 바지를 안입은거야..? 아무것도 안입고 모자만 쓰고 나가도 되는거야...? 스파이야 변태야? hash문제이므로 HashMap을 사용하였다. import java.util.*; class Solution { public int solution(String[][] clothes) { int answer = 1; HashMap hm = new HashMap(); for(int i = 0; i < clothes.length; i++) hm.put(clothes[i][1], hm.getOrDefault(clothes[i][1], 0) + 1); for(String key : hm.keySet()) answe..

프로그래머스 코딩테스트 문제: 폰켓몬

일단 문제 이름이 너무 귀엽다! 폰켓몬! 프로그래머스 코딩테스트 level1에 해당하는 문제이다. 지난 글에서 푼 문제를 풀면서 순수 배열로만 구현하는데 너무 얽매여 있었나보다. 문제를 보자마자 배열로만 풀어야겠다는 생각밖에 하지 못했다ㅜㅜㅜㅜ 다른 사람들의 답을 보자마자 아차싶었다. hash, ArrayList로 구현한 답들이 대부분을 차지했다. 어쩐지...코드를 쓰면서 이게 맞나 싶었지만... 꾸역꾸역 순수 배열로 구현해버렸...ㄷ..ㅏ.... 코드에서 냄새가 난다.... 부끄러운 코드다... 한가지에 너무 몰입하지말고 여러가지 경우의 수를 생각해보고 코딩을 시작하자. public int solution(int[] nums) { int answer = 1; int max=nums.length/2; b..

프로그래머스 코딩테스트 문제: 제일 작은 수 제거하기

프로그래머스 코딩테스트중 level1에 해당하는 문제이다. level1이고 딱보기에 쉬워보여 막 들이댔다가 큰코다쳤다.... 문제를 잘못파악해서 정렬된 상태로 풀뻔했기 때문...! 익숙한 ArrayList로 풀고싶었지만 단순 배열을 사용하고 순수 코딩만을 이용하는 것이 좋을 것 같아 최대한 배열과 코딩으로만 풀고자 했다. 배열만으로 코딩을 하는 것이 너무 오랜만이라 좀 헷갈렸다. class Solution { public int[] solution(int[] arr) { int[] answer = {}; if(arr.length==1) { answer=new int[1]; answer[0]=-1; return answer; } int min=arr[0]; for(int i=0;i

프로그래머스 코딩테스트 문제: 주식가격

level2 주식가격 문제를 풀어보았다. 스택/큐 에 대한 문제를 풀면서 느끼는 것인데, 스택/큐에 대한 문제는 문제를 완벽히 이해하고 식만 세우면 구현하는 것은 크게 어렵지는 않은 것 같다! 결론을 먼저 보자면 나의 코드는 이러하다. class Solution { public int[] solution(int[] prices) { int[] answer = new int[prices.length]; for(int i=0;i