import java.util.*;
class Solution {
public int[] solution(int[] arr) {
if(arr.length - 1 == 0) return new int[]{-1};
int[] answer = new int[arr.length - 1];
int min = arr[0];
for(int i = 1; i < arr.length; i++)
if(min > arr[i]) min = arr[i];
ArrayList<Integer> list = new ArrayList<>();
for(int num : arr){
if(num == min) continue;
list.add(num);
}
for(int i = 0; i < list.size(); i++){
answer[i] = list.get(i);
}
return answer;
}
}
// ArrayList 안쓴 풀이
class Solution {
public int[] solution(int[] arr) {
if (arr.length == 1) return new int[]{-1};
int min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (min > arr[i]) min = arr[i];
}
int[] answer = new int[arr.length - 1];
int idx = 0;
for (int num : arr) {
if (num == min) continue;
answer[idx++] = num;
}
return answer;
}
}class Solution {
public int solution(int[] a, int[] b) {
int answer = 0;
for(int i = 0; i < a.length; i++){
answer += a[i] * b[i];
}
return answer;
}
}class Solution {
public String solution(int n) {
StringBuilder sb = new StringBuilder();
for(int i = 0; i < n; i++){
if(i % 2 == 0) sb.append("수");
else sb.append("박");
}
return sb.toString();
}
}class Solution {
public int solution(int left, int right) {
int answer = 0;
for(int i = left; i <= right; i++){
answer = (cnt(i) % 2 == 0)? answer + i : answer - i;
}
return answer;
}
private int cnt(int num){
int result = 0;
for(int i = 1; i <= num ; i++){
if(num % i == 0) result++;
}
return result;
}
}
// 개선
class Solution {
public int solution(int left, int right) {
int answer = 0;
for(int i = left; i <= right; i++){
if (i % Math.sqrt(i) == 0) {
answer -= i;
} else {
answer += i;
}
}
return answer;
}
}import java.util.*;
class Solution {
public String solution(String s) {
char[] ch = s.toCharArray();
Arrays.sort(ch);
StringBuilder sb = new StringBuilder();
for(int i = ch.length - 1; i >= 0; i--) sb.append(ch[i]);
return sb.toString();
}
}
// 개선
import java.util.*;
class Solution {
public String solution(String s) {
char[] ch = s.toCharArray();
Arrays.sort(ch);
return new StringBuilder(new String(ch)).reverse().toString();
}
}class Solution {
public long solution(int price, int money, int count) {
long answer = (((long)(price * count) + price) * count / 2) - money;
return (answer > 0)? answer : 0;
}
}class Solution {
public boolean solution(String s) {
if(s.length() != 4 && s.length() != 6) return false;
for(char c : s.toCharArray()){
if(!Character.isDigit(c)) return false;
}
return true;
}
}class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = new int[arr1.length][arr1[0].length];
for(int i = 0; i < arr1.length; i++){
for(int j = 0; j < arr1[i].length; j++){
answer[i][j] = arr1[i][j] + arr2[i][j];
}
}
return answer;
}
}import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
for(int i = 0; i < b; i++){
for(int j = 0; j < a; j++){
System.out.print("*");
}
System.out.println();
}
}
}import java.util.*;
public class Solution {
public int[] solution(int []arr) {
Stack<Integer> s = new Stack<>();
for(int num : arr){
if(s.isEmpty() || s.peek() != num) s.push(num);
}
int[] answer = new int[s.size()];
int last = answer.length - 1;
while(!s.isEmpty()){
answer[last--] = s.pop();
}
return answer;
}
}| 함수 | 설명 |
|---|---|
| 기본 사용 방법 | Stack s = new Stack<>(); |
| push(item) | 스택에 아이템을 삽입 |
| pop() | 스택의 마지막 값을 제거하고 반환 |
| peek() | 스택의 마지막 값을 반환(삭제 X) |
| isEmpty() | 스택이 비었는지 반환 |
| size() | 스택의 크기 반환 |
| clear() | 스택의 모든 원소 제거 |
| contains(item) | 스택에 해당 아이템이 있는지 반환 |
class Solution {
public int[] solution(int n, int m) {
int[] answer = new int[2];
int a = Math.max(n, m), b = Math.min(n, m);
while(b != 0){
int tmp = a % b;
a = b;
b = tmp;
}
answer[0] = a;
answer[1] = (n / a) * (m / a) * a;
return answer;
}
}import java.util.*;
class Solution {
public int solution(String t, String p) {
int answer = 0;
Long _p = Long.parseLong(p);
for(int i = 0; i < t.length() - p.length() + 1; i++){
String s = t.substring(i, i + p.length());
if(Long.parseLong(s) <= _p) answer++;
}
return answer;
}
}
// 속도 개선
class Solution {
public int solution(String t, String p) {
int answer = 0;
for(int i = 0; i <= t.length() - p.length(); i++) {
if(t.substring(i, i + p.length()).compareTo(p) <= 0) {
answer++;
}
}
return answer;
}
}class Solution {
public int solution(int[] number) {
int answer = 0;
for(int i = 0; i < number.length - 2; i++){
for(int j = i + 1; j < number.length - 1; j++){
for(int k = j + 1; k < number.length; k++){
if(number[i] + number[j] + number[k] == 0) answer++;
}
}
}
return answer;
}
}import java.util.*;
class Solution {
public int solution(int[] d, int budget) {
int answer = 0;
Arrays.sort(d);
for(int i = 0; i < d.length; i++){
if(budget < d[i]) break;
budget -= d[i];
answer++;
}
return answer;
}
}class Solution {
public int solution(int n) {
int answer = 0;
StringBuilder sb = new StringBuilder();
while(n != 0){
sb.append(Integer.toString(n % 3));
n /= 3;
}
System.out.println(sb);
long reverse = Long.parseLong(sb.toString());
int idx = 0;
while(reverse != 0){
answer += (reverse % 10) * Math.pow(3, idx++);
reverse /= 10;
}
return answer;
}
}
// Integer.parseInt()의 진법을 넣어 변환
class Solution {
public int solution(int n) {
StringBuilder sb = new StringBuilder();
while(n != 0) {
sb.append(n % 3);
n /= 3;
}
return Integer.parseInt(sb.toString(), 3);
}
}class Solution {
public String solution(String s) {
s = s.toLowerCase();
StringBuilder sb = new StringBuilder(s);
int idx = 0;
for(int i = 0; i < sb.length(); i++){
if(sb.charAt(i) == ' ') idx = 0;
else{
if(idx % 2 == 0)
sb.setCharAt(i, Character.toUpperCase(sb.charAt(i)));
idx++;
}
}
return sb.toString();
}
}class Solution {
public int solution(int[][] sizes) {
int w = 0, h = 0;
for(int i = 0; i < sizes.length; i++){
int _w = Math.max(sizes[i][0], sizes[i][1]);
int _h = Math.min(sizes[i][0], sizes[i][1]);
w = Math.max(w, _w);
h = Math.max(h, _h);
}
return w * h;
}
}class Solution {
public int[] solution(String s) {
int[] answer = new int[s.length()];
int[] used = new int[26];
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if(used[c - 'a'] != 0){
answer[i] = (i + 1) - used[c - 'a'];
used[c - 'a'] = i + 1;
}
else{
answer[i] = -1;
used[c - 'a'] = i + 1;
}
}
return answer;
}
}class Solution {
public String solution(String s, int n) {
StringBuilder sb = new StringBuilder();
for(char c : s.toCharArray()){
if(c == ' ') sb.append(" ");
else{
int idx = c + n;
if((Character.isLowerCase(c) && idx > 122) || Character.isUpperCase(c) && idx > 90){
idx -= 26;
}
sb.append((char)idx);
}
}
return sb.toString();
}
}
class Solution {
public String solution(String s, int n) {
StringBuilder sb = new StringBuilder();
for(char c : s.toCharArray()){
if(c == ' '){
sb.append(c);
}
else{
char base = Character.isLowerCase(c) ? 'a' : 'A';
char shifted = (char) ((c - base + n) % 26 + base);
sb.append(shifted);
}
}
return sb.toString();
}
}class Solution {
public String solution(int[] food) {
int total = 1;
for(int i = 1; i < food.length; i++){
total += (food[i] / 2) * 2;
}
char[] c = new char[total];
c[total / 2] = '0';
int idx = 0;
for(int i = 1; i < food.length; i++){
int count = food[i] / 2;
for(int j = 0; j < count; j++){
c[idx] = (char)(i + '0');
c[c.length - 1 - idx] = (char)(i + '0');
idx++;
}
}
return new String(c);
}
}
// reverse로 붙이는 방식
class Solution {
public String solution(int[] food) {
StringBuilder sb = new StringBuilder();
for(int i = 1; i < food.length; i++) {
int count = food[i] / 2;
for(int j = 0; j < count; j++) {
sb.append(i);
}
}
return sb.toString() + "0" + sb.reverse().toString();
}
}