전체 글 (40) 썸네일형 리스트형 2023.08.23 TIL - 알고리즘 문제 명예의 전당 (1) k명의 점수를 노출시키는 명예의 전당에서 가장 낮은 점수를 일자별로 정렬한 배열을 출력하는 문제이다. import java.util.*; class Solution { public int[] solution(int k, int[] score) { PriorityQueue arr = new PriorityQueue(); int[] answer = new int[score.length]; for (int i=0; ik) arr.poll(); answer[i] = arr.peek(); } return answer; } } 가장 낮은 수를 반복적으로 제거해야 하기에 정렬에 이점이 있는 PriorityQueue 자료구조를 활용하는 것이 좋다. 우선순위 큐에 점수를 하나씩 넣고, 만약 크기가 k.. 2023.08.22 TIL - 알고리즘 문제 문자열 내 마음대로 정렬하기 문자열 배열과 정수를 입력받아 문자열의 정수번째 문자를 기준으로 정렬하는 문제이다. import java.util.*; class Solution { public String[] solution(String[] strings, int n) { String[] answer = new String[strings.length]; answer[0]=strings[0]; for(int i = 1;i=0;j--){ if (strings[i].charAt(n)0) break; else answer[j+1]=answer[j]; } else break; } answer[j+1]=strings[i]; } return answer; } } 정렬된 배열에 새 요소를 삽입할 때 배열을 처음부터 탐색.. 2023.08.21 TIL - 알고리즘 문제 - 1 최대공약수와 최소공배수 입력받은 두 수의 최대공약수와 최소공배수를 구하는 문제이다. class Solution { public int[] solution(int n, int m) { int x = n; int y = m; while(y!=0) { int r = x % y; x = y; y = r; } int[] answer = {x,n*m/x}; return answer; } } a를 b로 나눈 나머지를 n 이라고 했을 때, a 자리에 b값을, b 자리에 n 값을 넣어 n이 0이 될 때까지 반복한다. n이 0일 때의 b의 값이 a, b의 최대공약수이며, 위 방식처럼 구하는 방법을 유클리드 알고리즘이라 부른다. 이를 통해 최대공약수를 구하고, n과 m의 곱을 최대공약수로 나눔으로써 최소공배수까지 구할 수 .. 항해99 1주차 WIL 처음 4일간은 자바의 기본 문법을 배우는 시간을 가졌다. 이전에 객체지향 프로그래밍 수업을 전공에서 한 번 듣기도 하였고, 사전 강의 이전에 나눠주었던 다른 자바 강의를 한 번 반복해 들었었기에 이번 자바 강의를 들을 때에는 복습한다는 생각으로 강의를 들었다. 크게 다를 것은 없었지만, 프로그래밍 언어의 역사와 자바만의 특징 중 하나인 클래스에 대해서는 조금 더 알아야겠다는 생각이 들어 반복해 들었고, 이 부분만 따로 기록해 두었다. 커리큘럼 상에서는 기본적인 자바 문법인 클래스까지만 듣는 것으로 되어 있었지만 예외 처리를 위한 try catch나 이후의 쓰레드 과정은 개별로 따로 듣는 것이 좋을 듯 했다. 팀 별 과제로 숫자 야구 게임을 작성하고 이를 github에 올리는 과제가 주어졌는데, Intel.. 2023.08.19 - 알고리즘 문제 - 2 내적 주어진 배열 형태의 두 벡터를 내적한 값을 출력하는 문제이다. class Solution { public int solution(int[] a, int[] b) { int answer = 0; for (int i = 0;i0?0:-answer; } } 총 이용료를 계산할 때 등차수열의 합을 사용했던 것이 생각나 이를 활용해 보았다. 다만 변수 타입을 int로 하니 채점 케이스에서 에러가 발생해 오버플로우가 일어난 것으로 판단하여 long 타입으로 바꿔주었다. 문자열 다루기 기본 문자열의 길이가 4, 혹은 6이고 숫자로만 이루어져 있을 경우 True, 그 외의 경우는 False를 출력하는 문제이다. class Solution { public boolean solution(String s) { try{.. 2023.08.19 TIL - 알고리즘 문제 - 1 나누어 떨어지는 숫자 배열 입력된 배열 안의 정수 중 입력받은 다른 정수로 나누어 떨어지는 요소만 저장된 배열을 오름차순으로 출력하는 문제이다. import java.util.*; class Solution { public int[] solution(int[] arr, int divisor) { PriorityQueue ans = new PriorityQueue(); for (int a: arr) { if (a % divisor == 0) ans.add(a); } if(ans.isEmpty()) ans.add(-1); int[] answer = new int[ans.size()]; int i = 0; while(!ans.isEmpty()){ answer[i] = ans.poll(); i++; } retu.. 2023.08.18 TIL - 알고리즘 문제 - 2 문자열을 정수로 바꾸기 문자열로 입력받은 정수를 정수 타입으로 출력하는 문제이다. import java.util.*; class Solution { public int solution(String s) { return Integer.parseInt(s); } } 문제의 조건에 잘못된 값이 입력되는 경우는 없기에 s에 +,-가 포함되더라도 Integer 클래스의 parseInt 메소드를 활용하면 한줄로도 문제를 해결할 수 있다. 이를 사용하지 않는다면 s를 index별로 가른 후 자릿수마다 더하는 방법을 사용해야 할 것이다. 정수 제곱근 판별 입력받은 정수가 제곱수인지 판별하고, 제곱수라면 제곱근에 1을 더한 수를 제곱해 출력하는 문제이다. class Solution { public long solutio.. 2023.08.18 TIL - 알고리즘 문제 - 1 짝수와 홀수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 입력이 홀수일 때 "Odd", 짝수일 때 "Even"을 출력하는 함수를 작성하는 문제이다. class Solution { public String solution(int num) { String answer = num%2==0?"Even":"Odd"; return answer; } } %를 사용해 2로 나눈 나머지가 0일 때 "Even", 1일 때 "Odd"를 출력하게 했다. 간단한 조건문 문제로, if else를 사용해도 문제 없이 동작한다. 평균 구하기 어떤 배열의 평균값을 출력하는 문제이다... 이전 1 2 3 4 5 다음