본문 바로가기

전체 글

(61)
[Java][프로그래머스] - LVL.0 배열 뒤집기 정답 1 이번 문제는 참 재미있었다. 덕분에 IntStream 이라는것을 알게 됐고 사용해볼 수 있는 좋은 기회였다. IntStream.range 로 범위를 지정해주고 forEach 로 해당 범위의 index 값을 가져와 action 을 구성해줘야 한다. 그리하여 가져온 index 를 역으로 계산하여 answer 라는 int 배열에 거꾸로 값을 넣어주는 처리를 하였다. import java.util.stream.IntStream; class Solution { public int[] solution(int[] num_list) { int[] answer = new int[num_list.length]; IntStream.range(0, num_list.length).forEach(i -> { answer..
[Java][프로그래머스] - LVL. 0 문자열 뒤집기 정답 1 일딴 이 문제를 처음 접했을때 들었던 생각은 for문을 돌려서 인덱스를 거꾸로 집어넣어야겠다 라는 생각이다. 그래서 아래와 같이 코드를 짜보았다. class Solution { public String solution(String my_string) { char[] arr = my_string.toCharArray(); char[] afterManu = new char[arr.length]; for(int i = 1; i
[Java][프로그래머스] - LVL. 0 배열원소의 길이 정답 1 int 배열을 props 로 들어오는 String배열의 길이만큼 초기화해주고 향상된 for문을 통해서 각각의 String 요소들의 글자수를 구해서 초기에 초기화해줬던 int배열에 넣어줬다. class Solution { public int[] solution(String[] strlist) { int[] resultArr = new int[strlist.length]; int i = 0; for(String n : strlist) { resultArr[i] = n.length(); i++; } return resultArr; } } 그 결과 정답은 맞았다. 하지만 분명 더 간단한 방법이 존재할것같아 다른사람들의 답을 확인해 보았다. 정답 2 import java.util.Arrays; class..
[Java][프로그래머스] - LVL.0 피자나눠먹기 정답 1 해당 문제를 보는순간 딱 Math 라는 Java 기능을 사용해야겠다는 생각이 들었다. 그래서 아래와 같이 작성해 보았다. class Solution { public int solution(int n) { return (int)Math.ceil((double) n / 7); } } 이번에는 자신있었다. 내가 뽑을 수 있는 최대한의 깔끔한 코드이다. 정답이였다. 다른 사람들의 정답을 확인해보자. 정답 2 class Solution { public int solution(int n) { int answer = (n%7==0) ? n/7 : n/7 + 1; return answer; } } 나머지를 이용하여 나머지가 있으면 +1 해주는 방식이 있었다. 매우 간단하고 깔끔하여 보기 좋았다.
[Java][프로그래머스] - LVL.0 아이스 아메리카노 정답 1 - mine 이 문제를 처음 딱 봤을때 들었던 생각은 int 배열에 목과 나머지를 계산해서 때려 넣자! 였다. 그리하여 아래와 같이 작성해보았다. class Solution { public int[] solution(int money) { int priceOfCoffee = 5500; int affortAmount = money / priceOfCoffee; int change = money % priceOfCoffee; int[] answer = {affortAmount, change}; return answer; } } 결과는 작동 됐다. 하지만 코드가 너무 길어보였다. 그래서 고민끝에 아래 정답 2 와같이 리펙토링을 해보았다. 정답 2 - mine class Solution { public..
[Java][프로그래머스] - LVL.0 배열의 평균값 정답 1 해당 문제를 딱 처음 본 순간 아 for 문을 사용해야겠다! 라는 생각이 들었다. 그와 동시에 예전에 책에서 봤던 개선된(향상된) for문이 생각이 났고 냅다 코드를 작성해 돌려보았다. class Solution { public double solution(int[] numbers) { int sum = 0; for(int n : numbers) { sum += n; } return (double)sum/numbers.length; } } 결과는 맞았다. 하지만 예전에 접했던 Arrays.stream 이란 기능이 생각이 났다. 그래서 리펙토링을 해보았다. 정답 2 import java.util.Arrays; class Solution { public double solution(int[] num..
[Java][프로그래머스] - (LVL.0) 두수의 나눗셈 오답 해당 문제를 접했을때 아무생각 없이 적은 나의 닶이다.. // OLD answer class Solution { public int solution(int num1, int num2) { // num1 : 3, num2 : 2 int answer = 0; double first = num1 / num2; answer = (int) first * 1000; return answer; // answer 은 1500 이 되야함. } } 아무리 내가 대부분의 개발을 javascript로 했다고 하지만 내 Java 가 많이 처참해진 것 같다. 이것은 형변환과 자료형에 대한 기본 지식이 요구되는 문제이다. 상기 답변의 첫번째 문제는 double first = num1 / num2; 이부분이다. num1 / n..
Yarn 설치 및 사용 방법 yarn 이란? Yarn은 프로젝트 패키지 의존성을 관리하는 툴이며, 페키지 메니저이다. yarn 은 2016년 페이스북에서 발표됐으며 npm 보다는 조금 더 빠른 성능을 보유하고 있다고 한다. yarn 의 장점 1. 빠른 Installation npm은 npm install 시 패키지들을 하나씩 순차적으로 설치하는 반면 yarn 은 yarn install 시 package.json 에 나열돼있는 의존성 패키지들을 동시에 병렬적 방식으로 한번에 설치를 진행한다. 그래서 설치 측면에서 npm 보다 빠르다는 장점이 있다. 2. 보안성 yarn.lock, package.json 파일에 있는 의존성 페키지들만 설치를 진행하기 때문에 모든 디바이스에서 같은 패키지들을 설치하는 것을 보장하며 다른 버전이 설치되어 ..