목록코딩테스트/자바 (46)
100세까지 코딩
문제 설명 풀기 전 생각 솔직히 너무 막막했다... 수학적으로 풀어야 되는 건지.. 일단 해보자는 생각으로 선분 a-b, a-c, b-c를 비교 두 점 중 start는 더 큰 숫자로, end는 더 작은 숫자로 하면 겹치는 부분 나옴 end - start를 해서 음수면 안 겹쳐지는 것이므로 양수일 때만 더함 class Solution { public int solution(int[][] lines) { int answer = 0; int[][] duplicate = new int[3][2]; // 겹친 선분 [start, end] 저장 int k = 0; // duplicate 차례로 넣기 위한 변수 int sum = 0; //겹친 부분 합하기 위한 변수 for(int i = 0; i < lines.len..
문제 설명 풀기 전 생각 4개의 점이 주어졌으니 기울기로 평행을 찾아낸다 중복을 제외하면 총 6개의 선분이 만들어지고, 기울기만 배열에 따로 저장한다 a-b, a-c, a-d, b-c, b-d, c-d 선분의 기울기 class Solution { public int solution(int[][] dots) { int answer = 0; double[] inclination = new double[6]; // 기울기를 저장할 배열 int k = 0; // 기울기 배열에 증가값을 위한 변수 for(int i=0;i
문제 설명 풀기 전 생각 등차수열은 2b = a + c 인 규칙이 있다 등비수열은 a*c = b^2 인 규칙이 있다 다음에 올 숫자는 양변을 이동시키면 등차수열은 c = 2b - a, 등비수열은 c = b^2 / a이다 class Solution { public int solution(int[] common) { int answer = 0; if(2*common[1] == common[0]+common[2]){ // 등차 수열임을 확인 answer = 2*common[common.length-1] - common[common.length-2]; // c = 2b-a } if(common[0]*common[2] == (int)Math.pow(common[1],2)){ //등비 수열임을 확인 answer =..
문제 설명 풀기 전 생각 말할 수 있는 단어를 배열에 넣기 babbling을 for문 돌면서 말할 수 있는 단어들이 포함되면 replace로 지우기 class Solution { public int solution(String[] babbling) { int answer = 0; String[] say = {"aya", "ye", "woo", "ma"}; // 말할 수 있는 단어들 for (int i = 0; i < babbling.length; i++) { //입력된 단어들 순회 for (int j = 0; j < say.length; j++) { if (babbling[i].contains(say[j])) { // 말할 수 있는 단어들 하나씩 검사 babbling[i] = babbling[i].rep..