전체 글 41

[프로그래머스 JAVA] 배열의 평균

가볍게 기초부터 화이팅    배열의 평균값을 구하는 간단한 문제다 단순하게 일차원적으로 생각하면모두 더한 값을 배열의 길이로 나누면 된다 class Solution { public double solution(int[] numbers) { double answer = 0; for (int i=0; i  실행 결과는 성공   근데 뭔가 java의 함수가 있을 거 같은 느낌이다..average라는 함수로 분명 function이 없을리가 없는데 그래서 구글링 ! import java.util.Arrays;class Solution { // 다른풀이 stream() public double solution(int[] numbers) { return Array..

[JAVA] 2024.06.20

[프로그래머스 JAVA] 정수 부분

갑작스럽게 잡힌 코딩 테스트에 불똥이 떨어져기초부터 다시 리마인드해보기  0단계라서 문제는 간단하다   double로 입력받은 것을 int로 리턴하면 된다내림하여 int형으로 형변환을 해주면 된다 class Solution { public int solution(double flo) { int answer = (int) Math.floor(flo); return answer; }} Math.floor를 사용하면 소수점은 내림으로그리고 (int) 를 붙여 형변환을 해준다   정말 간단..기초부터 다시 해보자!! 그럼 반올림과 올림은 어떻게 될까?  1. 반올림 : Math.round()2. 올림 : Math.ceil() 3. 내림 : Math.floor() 기억하자!!

[JAVA] 2024.06.19

[AWS Lambda] 서버리스 컴퓨팅 서비스 업무에 활용해보기

Python 개발 업무가 점점 늘어나고 있다 (원래 Java 웹 개발을 주로 했다 ㅎ.ㅎ) 그럴 때마다 어디 서버에 서비스를 올려야할지,, 꽤나 중요하지 않은 거로 고민이었다.그러다 AWS Lambda를 활용해보기로 했다.  Lambda는 서버리스 컴퓨팅 서비스이다. 서버가 필요없다는 뜻 ! 서버는 우리가 관리해 줄 테니 너넨 코드만 올려서 호출해 와 같은 식이다.   대신 호출수 대비 요금이 청구되는 방식요금의 경우 AWS에 상세히 나와있다. 백만건당 0.20 USD로 저렴한 편에 속한다.   서버리스 컴퓨팅 – AWS Lambda 요금 – Amazon Web Services aws.amazon.com Lambda는 함수의 인스턴스를 실행하여 이벤트를 처리하는 방식으로 동작하는데,API Endpoint..

[AWS] 2024.05.07

[프로그래머스 JAVA] PCCP 기출문제 1번 붕대 감기 문제 풀이

주어진 시간동안 공격과 회복을 하면서 최종적으로 남은 체력을 리턴하는 문제이다.   같이 고려해야할 조건이 많기 때문에 꼼꼼히 문제를 읽어봐야 한다.1. 마지막 공격 시간까지 반복문을 돌려야한다.2. 연속 공격의 횟수를 count하여 시전시간이 되었을 때 추가 회복량을 더해줘야한다. 이때 공격 성공 시에는 초당 회복량을 더해줘야한다. 3. 주어진 health보다 그 이상이 될 순없다.  이중 반복문을 돌려야 하나 라고 고민했지만 그러기엔 조건문이 너무 남발하게 될 것 같았다.그래서 먼저 공격에 대한 배열을 Map 형식에 저장하여 key, value로 조회해야 겠다고 생각했다. // Map에 저장하여 key와 value로 조회 for (int[] attack : attacks) { attackInfo..

[JAVA] 2023.12.10

[프로그래머스 JAVA] k진수에서 소수 개수 구하기 문제 풀이

지난번 어떤 기업의 코테를 보고 충격받아 한동안 문제풀이를 안하고 놀러갔다와버렸다 히히.. 다시 마음을 다 잡고 공부 시작!! 이번에는 k진수에서 소수 개수 구하기 문제 풀이를 해보겠다. 문제를 보곤 생각보다 간단한데? 라고 생각했다. 주어진 문자열을 주어진 수로 진수 변환하고 문자열 배열에 저장해서 소수인지만 확인하면 될 것 같았다. String s = Integer.toString(n, k); List nums = new ArrayList(List.of(s.split("0"))); 0을 제외한 값으로 배열을 만들어서 반복문을 돌렸는데, 런타임 에러가 떴다.. ㅠ 서치를 해봤더니 nums의 값이 클수록 시간 복잡도가 증가하게 된 것이였다. 그래서 거진 소수 판별 알고리즘을 활용한다는 것을 봤다. 에라토..

[JAVA] 2023.12.02

[프로그래머스 JAVA] 구명보트 문제 풀이

이번 문제는 탐욕법(그리디) 알고리즘을 활용해서 푸는 문제이다. 탐욕법 알고리즘은 현재 가장 최선의 선택을 고르는 알고리즘을 뜻한다. 즉, 가장 좋은 선택이랑은 좀 다른 의미로 사용된다. 간단하게 가장 큰 수를 구하는 문제가 있다를 가정해보겠다. 가장 큰 수는 결과만 봤을 때 128이다. 그럼 처음 6이 선택되어야 하는 게 맞다. 하지만 탐욕법 알고리즘에 의하면 현재 가장 큰 수, 17을 선택하게 된다. 이제 문제를 보겠다. 주어진 몸무게 배열에서 무게 제한을 넘지 않고 몇번이나 구명 보트를 타야 모두 구출되느냐 에 대한 문제이다. 이런 경우는 먼저 주어진 배열을 정렬하는 것이 필요하다. 그리고 가장 큰수와 작은 수의 합 순으로 하나씩 제거하면서 생각하면 쉽다. Arrays.sort() 메소드를 활용해서..

[JAVA] 2023.11.19

[프로그래머스 JAVA] 카펫 문제 풀이

이번 문제는 완전탐색 알고리즘으로 풀이할 수 있는 문제이다. 완전탐색 알고리즘은 간단하게 가능한 모든 경우의 수를 확인하는 알고리즘이다. 다소 무식해보일 순 있으나 입력값의 범위가 작은 경우는 매우 유용하게 쓸 수 있다. 이번 문제의 경우 노란색칸이 갈색칸안에 포함되는 카펫의 가로, 세로 크기를 출력하는 것이다. 입력값은 갈색칸의 수, 노란색 칸의 수이다. 일단 다음과 같은 공식을 확인할 수 있다. 1. 입력된 갈색칸과 노란색칸의 합은 카펫의 넓이이다. (즉, 행 X 열과 같다.) - brown + yellow = row * column 2. 행과 열에 각각 -2한 값은 노란색칸과 같다. (양끝에 있는 칸 수를 빼주는 것이다.) - (row - 2) * (column - 2) = yellow 3. 카펫의..

[JAVA] 2023.11.19

[프로그래머스 JAVA] 의상 문제 풀이

이번엔 해시를 이용해서 해결해야 하는 문제이다. 해시는 실무에서도 가장 많이 사용하는 함수 중 하나인데, 간단하게 말해서는 key 와 value 구조로 되어 있는 이차 배열로 생각하면 된다. key 값을 통해서 value를 가지고 오는 형식으로 데이터를 저장하고 조회하는 것에 수월하기 때문에 자주 사용된다. 간단하게는 경우의 수를 구하라는 것이다. 다만, 아무것도 입지 않았거나 같은 의상을 입는 것은 제외하고 공식으로 생각하면 (의상수 + 1) * (의상수 + 1) * (의상수 + 1) 가 될 수 있다. 그리고 아무것도 입지 않은 경우를 제외해야 하기 때문에 -1 을 해줘야 한다. 예제 1로 풀이 해보자면 아래와 같다. (headgear 2개 + 1) * (eyewear + 1) - 1 = 5 그래서 이..

[JAVA] 2023.11.19

[프로그래머스 JAVA] 다음 큰 숫자 문제 풀이

이번에도 메소드를 활용하면 쉽게 풀이할 수 있는 문제이다. 입력받은 수보다 크고, 이진수로 변환 했을 때의 1의 갯수가 같아야하는 자연수를 구하는 문제이다. 처음엔 입력받은 수를 이진수로 변환하여 1의 개수를 세고 반복문을 돌려서 1의 개수와 같으면서 입력받은 수보다 큰 값을 추출해내야 하나 했는데.. 그럼 당연히 효율성 테스트에서 떨어질 것을 직감했다. 그래서 bitCount라는 메소드를 활용해서 코드를 작성했다. bitCount(a)는 a라는 Integer형 변수를 이진수로 변환한 값에서 1의 갯수를 확인하는 메소드다. 이 메소드를 활용하면 1. 입력받은 변수 bitCount 확인 2. 무한 루프 반복문으로 입력받은 변수에 +1 씩하면서 bitCount 확인 3. bitCount가 동일하면 break..

[JAVA] 2023.11.18