본문 바로가기

Backend/Algorithm

(33)
21. 2차원 배열 - 나머지 한 점 코드 class Solution { public int[] solution(int[][] v) { int x,y; if(v[0][0] == v[1][0]) { x = v[2][0]; }else if(v[1][0] == v[2][0]) { x = v[0][0]; }else { x = v[1][0]; } if(v[0][1] == v[1][1]) { y = v[2][1]; }else if(v[1][1] == v[2][1]) { y = v[0][1]; }else { y = v[1][1]; } int answer [] = {x,y}; return answer; } } 접근방법
20. ArrayList - 나누어 떨어지는 숫자 배열 코드 import java.util.Arrays; import java.util.ArrayList; class Solution { public int[] solution(int[] arr, int divisor) { int[] answer = {}; ArrayList temp = new ArrayList(); for(int i=0; i
19. toLowerCase, charAt - 문자열 내 p와 y의 개수 코드 class Solution { boolean solution(String s) { boolean answer = true; int cntp = 0; int cnty = 0; s = s.toLowerCase(); for(int i=0; i
18. ArrayList - 문자열 내 마음대로 정렬하기 코드 import java.util.ArrayList; import java.util.Collections; class Solution { public String[] solution(String[] strings, int n) { ArrayList newArr = new ArrayList(); for(int i=0; i
13. BufferedReader, BufferedWriter, StringTokenizer - 빛 섞어 색 만들기 CodeUp 1084 : [기초-종합] 빛 섞어 색 만들기(설명) 빨강(red), 초록(green), 파랑(blue) 빛을 섞어 여러 가지 빛의 색을 만들어 내려고 한다. 빨강(r), 초록(g), 파랑(b) 각각의 빛의 개수가 주어질 때, (빛의 강약에 따라 0 ~ n-1 까지 n가지의 빛 색깔을 만들 수 있다.) 주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과 총 가짓 수를 계산해보자. 입력 빨녹파(r, g, b) 각 빛의 강약에 따른 가짓수(0 ~ 128))가 공백을 사이에 두고 입력된다. 예를 들어, 3 3 3 은 각 색깔 빛에 대해서 그 강약에 따라 0~2까지 3가지의 색이 있음을 의미한다. 출력 만들 수 있는 rgb 색의 정보를 오름차순(계단을 올라가는 순, 12..
12. 비트단위시프트연산자 <<, >> 정수 1개를 입력받아 2배 곱해 출력해보자. 참고 *2 의 값을 출력해도 되지만, 정수를 2배로 곱하거나 나누어 계산해 주는 비트단위시프트연산자 를 이용한다. 2진수 형태로 저장되어 있는 값들을 왼쪽()으로 지정한 비트 수만큼 밀어주면 2배씩 늘어나거나 반으로 줄어드는데, 왼쪽 비트시프트()가 될 때에는 왼쪽에 0(0 또는 양의 정수인 경우)이나 1(음의 정수인 경우)이 개수만큼 추가된다. 범위(32비트)를 넘어서 이동되는 비트는 삭제된다. 예시 int a=10; printf("%d", a1); //10을 반으로 나눈 값인 5 가 출력된다. printf("%d", a2); //10을 반으로 나눈 후 다시 반으로 나눈 값인 2 가 출력된다. 코드 import java.util.Scanner; public ..
11. copyOfRange, sort - K번째 수 입출력 예: array commands return [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] 입출력 예 설명: [1, 5, 2, 6, 3, 7, 4]를 2번째부터 5번째까지 자른 후 정렬합니다. [2, 3, 5, 6]의 세 번째 숫자는 5입니다. [1, 5, 2, 6, 3, 7, 4]를 4번째부터 4번째까지 자른 후 정렬합니다. [6]의 첫 번째 숫자는 6입니다. [1, 5, 2, 6, 3, 7, 4]를 1번째부터 7번째까지 자릅니다. [1, 2, 3, 4, 5, 6, 7]의 세 번째 숫자는 3입니다. 코드: import java.util.*; class Solution { public int[] solution(int[] ar..
10. greedy - 체육복 입출력 예: n lost reserve return 5 [2, 4] [1, 3, 5] 5 5 [2, 4] [3] 4 3 [3] [1] 2 입출력 예 설명: 예제 #1 1번 학생이 2번 학생에게 체육복을 빌려주고, 3번 학생이나 5번 학생이 4번 학생에게 체육복을 빌려주면 학생 5명이 체육수업을 들을 수 있습니다. 예제 #2 3번 학생이 2번 학생이나 4번 학생에게 체육복을 빌려주면 학생 4명이 체육수업을 들을 수 있습니다. 코드: class Solution { public int solution(int n, int[] lost, int[] reserve) { int answer = 0; int count = 0; for(int i=0; i