java 205

다음에 올 숫자 (자바, Java)

간단해서, 그냥 IDE 사용없이 쌩코딩으로 풀었다. 이게 왜이리 정답률이 낮나 싶음. common의 길이는 2보다 크다. 따라서 0~2번째 배열값이 존재하므로, 공차인지 공비인지 판단하여 수열이 등차수열인지, 등비수열인지 정해준 다음, 마지막 수에서 공차를 더하거나 공비를 곱하면 된다. 정수 간 나눗셈은 엄밀한 값을 구하기 위해서는 double로 처리해줘야함을 잊지 말아야한다. class Solution { public int solution(int[] common) { int gap1 = common[1]-common[0]; int gap2 = common[2]-common[1]; double ratio1 = common[1]*1.0/common[0]; double ratio2 = common[2]*1..

평행 (자바, Java)

별로 특이사항 없길래 안 올리려다가, 프로그래머스 0레벨 중 정답률이 두번째로 낮아서 그냥 썼다. 평행=두 선분의 기울기가 같다 인데, 중요한건 int값은 나눗셈에서 버림처리가 될 수 있기에...double로 처리해줘야한다. class Solution { public int solution(int[][] dots) { int answer = 0; if (slope(dots[0], dots[1])==slope(dots[2],dots[3])) { answer = 1; } else if (slope(dots[0], dots[2])==slope(dots[1],dots[3])) { answer = 1; } else if (slope(dots[0], dots[3])==slope(dots[1],dots[2])) { ..

다항식 더하기 (자바, Java)

생각보다 까다로웠다. x의 계수, 상수를 따로 나누어서 경우의 수를 구했다. 그래서 각각의 값이 0인경우를 나누어서 출력했는데... x의 계수가 1인 경우, 1x로 출력하는 경우가 있었다. 그래서 그 경우까지 if로 잡아주고 해결. class Solution { public String solution(String polynomial) { String[] arr = polynomial.split(" "); int x = 0; int con = 0; for (int i=0; i

숨어있는 숫자의 덧셈 (2) (자바, Java)

생각보다 까다로웠던 문제. 붙어있는 숫자는 '하나의숫자' 로 간주된다. 따라서, 숫자가 나오면 스택에 넣어두고, 숫자가 아닌 알파벳이 나오면 스택에서 차례로 뱉어주면서 각 자릿수로 만들어 더해주면 된다. class Solution { public int solution(String my_string) { int answer = 0; int l = my_string.length(); Stack stack = new Stack(); for (int i=0; i='0' && ch

OX퀴즈 (자바, Java)

원래 안쓰려고 했는데, 정답률이 57%밖에 안되길래 의아해서 그냥 기록합니다. split이나 StringTokenizer를 사용하여 공백으로 끊어주고, 두 정수는 끊어줘서 만들어준 배열에 offset 0과 2에 담기고, 1에는 연산자가, 4에는 결과값이 담겨 각각을 비교해주면 됩니다. class Solution { public String[] solution(String[] quiz) { int l = quiz.length; String[] answer = new String[l]; for (int i=0; i

소인수분해 (자바, Java)

따로 소인수분해를 하지 않고, 소수를 뽑아 해당 소수로 나눠지는지 판별해서 값을 넣는 식으로 진행했습니다. 소수판별은 에라토스테네스의 체를 이용. 갯수가 가변적이라, queue로 받은 뒤 확정되면 배열에 하나씩 넣었습니다. import java.util.LinkedList; import java.util.Queue; class Solution { public int[] solution(int n) { int[] answer = {}; boolean[] pn = new boolean[n+1]; // 소수판별배열 Queue queue = new LinkedList(); for (int i=0; i