코딩테스트(36)
-
[2021-06-15] 내적
푼 시간 : 5분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 내적 이란 말은 아직도 모르지만 그냥 풀었다.. 볼게 별로 없는 문제 왜 처음에 answer에 123456789가 들어가있는지 모르겠다. class Solution { public int solution(int[] a, int[] b) { int ..
2021.06.15 -
[2021-06-13] 로또의 최고 순위와 최저 순위
푼 시간 : 15분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr temp를 써서 자연수를 넣어줬다. 전에 본적있는 방식이라 해봤는데 배열쓰기 참 편해서 좋은거 같다. 마지막에 count가 temp를 초과할것이 분명해서 고민하다가 어차피 0도 6등이기에 그냥 6을 하나 더 넣어줬다. import java.util.*; class Solution {..
2021.06.13 -
[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