programmers(30)
-
[Programmers] Lv0 다항식 더하기 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120863 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 다항식을 분리하는데 StringTokenizer을 사용하였다. StringTokenizer은 정규식을 사용하기 때문에 split보다 성능이 좋다고 한다. 또한 split은 배열을 만들지만 이 문제의 경우에는 한 번만 접근하면 되기 때문에 StringTokenizer을 이용하였다. 다항식 x + x + x 같은 경우처럼 x 가 많은 경우 문자..
2023.01.30 -
[Programmers] Lv0 최빈값 구하기 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120812 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 최빈값은 가장 자주 나오는 값이다. 또한 원소가 최대 1000 미만이므로 배열에 맵핑이 가능하다. 가장 큰 값 + 1 만큼 배열의 길이를 만들고 거기에 나오는 ㅊcount를 적었다. 그리고 얻은 countArray에 최댓값 즉 최빈값이 여러개 나온지 확인후 결과 값을 주게 하였다. 소스 코드 import java.util.Arrays; pu..
2023.01.29 -
[Programmers] Lv0 분수의 덧셈 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 분수의 덧셈을 할때 우리는 기본적으로 최대 공약수와 최대 공배수를 두 개 다 사용한다. 하지만 소스 코드에서는 최대 공약수만 사용한다. 기약 분수가 아닌 분수의 덧셈은 다음과 같다 분자 : numer1denom2 + numer2denom1 분모 : denom1*denom2 약수를 구하는 방법은 두개의 수에서 가장 작은 수를 하나씩 빼면서 두..
2023.01.28 -
[Programmers] Lv0 안전지대 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 위 아래 왼쪽 오른쪽 대각선은 지뢰가 있는 좌표에 X,Y에 + 1, -1 을 각각 해주면 된다. 하지만 이때 배열에 접근할 때 언더 플로우, 오버 플로우가 발생할 수 있으므로 이에 대한 처리를 해주면된다. 각 지뢰가 있는 것을 1이라고 했을 때 경고하는 것은 0일때 2로 표현을 했다. 위험지역이 아닌 안전지역을 구하는 방법은 위험지역을 표시..
2023.01.27 -
[Programmers] Lv0 겹치는 선분의 길이 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120876?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 lines의 최소 최대 범위 만큼 배열을 만들고 그 배열에 각각 기록을 하면 겹치는 부분을 쉽게 구할 수 있다. 겹치는 부분은 2번 이상 기록된 거이므로 2번 이상 된것을 세면 된다. 소스 코드 import java.util.Arrays; public class Solution { public int solution..
2023.01.26 -
[Programmers] Lv0 평행 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120875 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 평행하다고 하는 것은 기울기가 갔다 와 의미가 같다. 기울기를 구하는 공식은 (y2 - y1) / (x2 - x1)이다. 평행을 하는 경우의 수를 구하고 그 경우의 수 끼리 서로 같은지 구분하여 풀었다. 소스 코드 public class Solution { public double getGrade(int[] dot1, int[] dot2) ..
2023.01.25 -
[Programmers] Lv0 n의 배수 고르기 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제는 numlist에서 n의 배수만 걸러내는 것이다. 거의 모든 프로그래밍 언어는 나머지 연산자를 제공해 준다. n의 배수라는 말은 어떤 수가 n으로 나누어 떨어지는 수라고 할 수 있다. 이를 자바로 표현하면 다음과 같다. if ( num % n == 0) { // n의 배수일때 실행되는 코드 } 이를 배열로 구현한다면 배열을 여러 번 생..
2023.01.24 -
[Programmers] Lv0 자릿수 더하기 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 해당 숫자를 각 자리마다 더하는 것이므로 문자열로 변환하면 각 자릿수에 접근을 할 수 있다. 이때 접근은 char로 가능하며 char을 int 다시 말해 char 에 해당하는 의미의 숫자로 바꾸려면 Character.getNumericValue(char)를 사용하거나 ASCII 코드를 이용하여 char - ‘0’ 이렇게 해주면 된다. 소스 ..
2023.01.23 -
[Programmers] Lv0 OX 퀴즈 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120907 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 이 문제는 형식이 고정된 식에 대해 결과가 맞는지 확인 하는 문제이다. 연산 기호 숫자 사이에는 하나이상의 공백이 있으며 또한 연산이 2번이 되지 않고 1번만 된다. 또한 연산자의 수는 2개 -, + 이다. 자바에서 array.split(구분자)를 쓰면 구분자를 기준으로 배열을 만들어 준다. 이를 이용하면 연산자를 구분할 수 있으며(연산자의..
2023.01.23 -
[Programmers] Lv0 문자열안에 문자열 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120908 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 Str1에 Str2가 있는지 확인하는 문제이므로 문자열 검색 알고리즘을 사용하면 된다. 보이어 무어법을 공부하고자 보이어 무어법으로 풀었다. 보이어 무어법의 시간 복잡도는 브루트 포스법과 KMP법 보다 알고리즘 시간이 더 빠르다. n = 택스트 길이, m 은 패턴의 길이일때 최악의 경우 O(n)이고 평균 O(n / m)이다. 보이어 무어법으..
2023.01.22