자바(46)
-
[2021-06-11] 시저 암호
푼 시간 : 20분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/12926 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr 문자열 핸들링.. 대경권 코딩테스트에서 한번 나왔을때 멍청하게 풀어서 풀지도 못하고 시간만 날렸는데, 이번에는 그냥 풀어버리자!라는 생각으로 풀어버리려 했으나 은근히 오래걸렸다. 이 그냥 처음부터 Z에 대한걸 걸어버렸으면 되는거였는데 왜 접근법이 항상 이런지 모르겠다. 다른분들 코드를 보고나니 좀 코..
2021.06.11 -
[2021-06-10] 124나라의 숫자 (lv2)
푼 시간 : 3시간(못 풀었음) 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 푸느라 머리가 깨질뻔 했는데, 결국엔 풀지는 못 했다. 애초부터 접근방식이 잘못 된 건가 싶은데 맞는 것 같다. 알고리즘이라는게 기본적으로 어떤식으로 탐색해야 할지 컴퓨터한테 알려주는 과정인 것 같은 느낌이 자꾸 드는데 나는 그 능력이 부족한 것 같다. 풀지는 못했고, 구글링을 통해 이해하고 글을 남긴다. class Solution { public String solution(int n) { String[] num = {"4","1","2"}; // 배열에 미리 4, 1, 2를 넣어놓는다..
2021.06.10 -
[2021-05-28] 폰켓몬
푼 시간 : 10분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/1845 이름은 엄청나게 어려울 것 같았는데.. 생각보다 신경써야 할 조건이 없어서 편안했다. 별로 다른건 없고 혹시라도 반보다 커지면 뭐 더 할 것 없이 /2를 넣었다. import java.util.*; class Solution { public int solution(int[] nums) { int answer = 1; Arrays.sort(nums); // 정렬해서 귀찮은 연산을 줄임 for(int i=0; inums.length/2 ? nums.length/2 : answer; // 혹시 전체/2보다 크면 nums.length리턴, 작으면 answer리턴 } }
2021.05.28 -
[2021-05-27] 두 개 뽑아서 더하기
푼 시간 : 30분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/68644 문제를 처음에 풀 때는 고민을 엄청 했다. 중복을 잡아야 한다는 생각이 좀 크지만, 뭔가 해쉬맵을 쓰지 않고 푸는법은 없을까 고민을 많이 했는데 쓸데없이 배열을 하나 더 만들거나 메모리 낭비만 할것같아, 그냥 해쉬맵으로 풀었다. Iterator객체로 만들고 순서를 매기는건 정말 편한 것 같다. import java.util.*; class Solution { public int[] solution(int[] numbers) { int[] answer; HashMap map=new HashMap(); // 해쉬맵은 중복이 안된다. for(int i=0; i
2021.05.27 -
[2021-05-25] 약수의 개수와 덧셈
푼 시간 : 40분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/77884 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 재귀함수로 풀다보니 시간이 오래걸렸다 지저분한데 급해서 그냥 풀었다. 막상 남들 푼걸 보니 재귀가 없어도 되는 문제였다... 너무 어렵게 생각하려는 습관이 문제인 것 같다. 후배들 보면서도 하는 생각인데 나도 결국 똑같이 어렵게 연산하는길을 택하는경우가 많은 것 같다.. cla..
2021.05.25 -
[2021-05-05] 소수 찾기
푼 시간 : 30분 언어 : 자바 전에 에라토스테네스의 체 로 풀어야만 한다는 글을 보고 안 풀어놓고 까먹었는데, 오늘 다시 보게 됐다.. 이해가 안된다면 알고리즘 항목에 있는 에라토스 테네스의 체를 보면 금방 이해가 되실 것 같다. import java.util.*; class Solution { public int solution(int n) { int answer = 0; int[] filter = new int[n + 1]; Arrays.fill(filter, 1); // 필터에 1을 채운다. filter[0] = 0; filter[1] = 0; // 0과 1은 소수가 아님을 미리 필터링 한다. for (int i = 2; i < Math.sqrt(n) + 1; i++){ // 제곱근+1의 범위 ..
2021.05.05