728x90
SMALL

using System.Linq;

public class Solution {
    public string solution(string s) {
        char[] temp = s.ToCharArray();
        //s를 charArray로 변환하기
        System.Array.Sort(temp);
        //Zbcdefg
        System.Array.Reverse(temp);
        // gfedcbZ
        // sorting하고 역순으로 다시 정렬하기
        string answer = new string(temp);
        return answer;
    }
}

 

 

///////

자바

//////

 

 

import java.util.Arrays;

public class ReverseStr {
    public String reverseStr(String str){
    char[] sol = str.toCharArray();
    Arrays.sort(sol);
    
    return new StringBuilder(new String(sol)).reverse().toString();
    }

    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) 
    {
        ReverseStr rs = new ReverseStr();
        System.out.println(rs.reverseStr("Zbcdefg") );
    }
}

 

 

import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.util.Comparator;

public class ReverseStr {
    public String reverseStr(String str)
    {
        return Stream.of(str.split(""))
    .sorted(Comparator.reverseOrder())
    .collect(Collectors.joining());
    }

    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) 
    {
        ReverseStr rs = new ReverseStr();
        System.out.println( rs.reverseStr("Zbcdefg") );
    }
}

 

 

import java.util.Arrays;

public class ReverseStr {
    public String reverseStr(String str){
    char[] ch = str.toCharArray();
        String lower = "";
        String upper = "";

        for(int i = 0; i < ch.length; i++) 
        {
            int chnum = ch[i];

            if(chnum >= 65 && chnum <= 90)
                upper += ch[i];
            else
                lower += ch[i];
        }

        char[] chUpper = upper.toCharArray();
        char[] chLower = lower.toCharArray();
        upper = ""; lower = "";

        Arrays.sort(chUpper);
        Arrays.sort(chLower);

        for(int i = chUpper.length - 1; i >= 0; i--)
            upper += chUpper[i];
        
        for(int i = chLower.length - 1; i >= 0; i--)
            lower += chLower[i];

        return lower + upper;
    }

    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) {
        ReverseStr rs = new ReverseStr();
        System.out.println( rs.reverseStr("Zbcdefg") );
    }
}

 

728x90

설정

트랙백

댓글

728x90
SMALL

using System;

class Solution 
{
    public int solution(int n) 
   {
        int answer = 0;
        string ijin2 = "";
        string result = "";
        string ijin = Convert.ToString(n, 2); /// n을 이진수로 바꾸기
        ijin = ijin.Replace("0", ""); // 0을 삭제하기

        for(int i=n+1;i<=1000000;i++)
        {
            ijin2 = Convert.ToString(i, 2);
            result = ijin2.Replace("0", ""); /// 1의 개수가 같으면 되니까 0을 지우고 1로만 세팅한다.
            
            if(ijin.Length == result.Length) // 1로만 세팅된 게 같으면 break한다.
            {
                break;
            }
        }
        
        answer = Convert.ToInt32(ijin2, 2); //이 숫자를 다시 2진수로 바꾼다.
        return answer;
    }
}

 

 

자바

 

 

class TryHelloWorld
{
    public int nextBigNumber(int n)
    {
      int cnt = Integer.bitCount(n);
      while(Integer.bitCount(++n) != cnt) {}
      return n;
    }
    public static void main(String[] args)
    {
        TryHelloWorld test = new TryHelloWorld();
        int n = 78;
        System.out.println(test.nextBigNumber(n));
    }
}

 

 

 

class TryHelloWorld {
    public int nextBigNumber(int n) {
        int postPattern = n & -n, smallPattern = ((n ^ (n + postPattern)) / postPattern) >> 2;
        return n + postPattern | smallPattern;
    }
    public static void main(String[] args) {
        int n = 78;
        System.out.println(new TryHelloWorld().nextBigNumber(n));
    }
}

 

 

import java.util.regex.Pattern;
import java.util.regex.Matcher;

class TryHelloWorld
{
    public int nextBigNumber(int n)
    {
        int answer = n;
        int defaultCnt = Integer.bitCount(n);

        while(true)
        {
          answer++;
          if(Integer.bitCount(answer) == defaultCnt) 
            break;
        }

        return answer;
    }

    public static void main(String[] args)
    {
        TryHelloWorld test = new TryHelloWorld();
        int n = 78;
        System.out.println(test.nextBigNumber(n));
    }
}
728x90

설정

트랙백

댓글

728x90
SMALL

using System;

public class Solution {
    public int solution(string s) {
        int answer = 0;
        string[] arr = s.Split(" "); // 빈 칸을 기준으로 나누기 {1} {2} {Z} {3}
        int index = 0;
        
        for(int i = 0; i < arr.Length; i++)
        {
            if(arr[i] == "Z")
            {
                if(index == 0)
                {
                    continue;
                }


                index--;
                answer -= int.Parse(arr[index]); // 바로 전에 더했던 수를 빼야한다.
            }
            else
            {
                answer += int.Parse(arr[i]);
                index = i + 1;
            }
        }
        return answer;
    }
}

 

/// continue 없어도 된다.

 

 

파이썬

////

 

def solution(s):
    arr = s.split(' ')
    result =[]
    for i in arr :
        if i=='Z':
            result.pop()
        else:
            result.append(int(i))
    return sum(result)

 

 

def solution(s):
    answer = 0
    for i in range(len(s := s.split(" "))):
        answer += int(s[i]) if s[i] != "Z" else -int(s[i-1])
    return answer

 

자바

 

import java.util.LinkedList;

class Solution {
    public int solution(String s) {
        int answer = 0;

        LinkedList<Integer> numbers = new LinkedList<>();

        if (!s.isEmpty()) 
        {
            String[] split_s = s.split(" ");

            for (int i = 0; i < split_s.length; i++) 
            {
                if (split_s[i].equals("Z")) 
                {
                    if (i - 1 >= 0 && numbers.size() > 0)
                        numbers.removeLast();
                }
                else
                    numbers.add(Integer.valueOf(split_s[i]));
            }
        }

        for (Integer number : numbers) 
        {
            answer += number;
        }

        return answer;
    }
}

 

 

import java.util.*;

class Solution {
    public int solution(String s) {
        int answer = 0;
        Stack<Integer> stack = new Stack<>();

        for (String w : s.split(" ")) 
        {
            if (w.equals("Z")) 
            {
                stack.pop();
            } 
            else 
            {
                stack.push(Integer.parseInt(w));
            }
        }
        
        for (int i : stack) 
        {
            answer += i;
        }
        
        return answer;
    }
}
728x90

설정

트랙백

댓글

728x90
SMALL

using System;

public class Solution
{
    public double solution(int balls, int share)
    {
        double answer = 0;
        double sum1 = 1;
        double sum2 = 1;
        double sum3 = 1;
        
        for (double i = 1; i <= balls; i++)
        {
            sum1 *= i;
        }
        
        for (double i = 1; i <= share; i++)
        {
            sum2 *= i;
        }
        
        for (double i = 1; i <= balls - share; i++)
        {
            sum3 *= i;
        }
        answer = Math.Round(sum1 / (sum2 * sum3));

        return answer;
    }
}

 

////

 

using System;
using System.Numerics;

public class Solution 
{
    public int solution(int balls, int share)
    {
        return Combination(balls, share);
    }

    public int Combination(int n, int m)
    {
        if (m == 0 || n == m) 
        {
            return 1;
        }

        return Combination(n - 1, m - 1) + Combination(n - 1, m);
    }
}

 

 

//////////

파이썬

 

import math

def solution(balls, share):
    return math.comb(balls, share)

 

def solution(balls, share):
    answer = factorial(balls) / (factorial(balls - share) * factorial(share))
    return answer

def factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result

 

자바

//////

 

class Solution {
    public long solution(int balls, int share) {
        long answer = 0;

        int d = (balls - share) > share ? share : balls - share;
        if (d == 0) return 1;

        return solution(balls - 1, d - 1) * balls / d;
    }
}

 

 

import java.math.BigInteger;

class Solution {
    public BigInteger solution(int balls, int share) {
        return factorial(balls).divide(factorial(balls - share).multiply(factorial(share)));
    }

    public BigInteger factorial(int n) {
        BigInteger result = new BigInteger("1");
        BigInteger from = new BigInteger("1");
        BigInteger to = new BigInteger(String.valueOf(n));

        for (BigInteger i = from; i.compareTo(to) <= 0; i = i.add(BigInteger.ONE)) {
            result = result.multiply(i);
        }
        return result;
    }
}

 

 

class Solution {
    public long solution(int balls, int share) {
        share = Math.min(balls - share, share);

        if (share == 0)
            return 1;

        long result = solution(balls - 1, share - 1);
        result *= balls;
        result /= share;

        return result;
    }
}
728x90

설정

트랙백

댓글

728x90
SMALL

using System.Collections.Generic;

public class Solution {
    public List<int> solution(int[] arr, int divisor) {
        List<int> answer = new List<int>();
        int j = 0;
        
        for(int i = 0;i<arr.Length;i++)
        {
            if(arr[i]%divisor == 0)
            {
                answer.Add(arr[i]);
                j++;
            }
        }
        
        if(j == 0)
        {
            answer.Add(-1);
        }
        answer.Sort();
        return answer;
    }
}

 

 

///////

자바

 

 

import java.util.Arrays;

class Solution {
  public int[] solution(int[] arr, int divisor) {
          int[] answer = Arrays.stream(arr).filter(factor -> factor % divisor == 0).toArray();
          if(answer.length == 0) answer = new int[] {-1};
          java.util.Arrays.sort(answer);
          return answer;
  }
}

 

 

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int divisor) {
        Arrays.sort(arr);
        List<Integer> lst1 = new ArrayList<Integer>();

        for(int item : arr) 
        {
            if(item % divisor == 0) 
            {
                lst1.add(item);
            }
        }

        int lstSize = lst1.size();
        
        if(lstSize == 0) 
        {
            int[] answer = { -1 };
            return answer;
        }

        int[] answer = new int[lstSize];
        
        for(int i = 0; i < lstSize; ++i) 
        {
            answer[i] = lst1.get(i);
        }
        
        return answer;
    }
}

 

728x90

설정

트랙백

댓글

728x90
SMALL

public class Solution {
    public string solution(int a, int b) {
        string answer = "";
        int[] month = new int[13] {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        int days = b;
        //31 29 31 30 31 30 31 31 30 31 30 31
        
        for(int i=0;i<a;i++)
        {
             days += month[i];
        }
        
        if(days%7 == 1)
        {
            answer = "FRI";
        }
        else if(days%7 == 2)
        {
            answer = "SAT";
        }
        else if(days%7 == 3)
        {
            answer = "SUN";
        }
        else if(days%7 == 4)
        {
            answer = "MON";
        }
        else if(days%7 == 5)
        {
            answer = "TUE";
        }
        else if(days%7 == 6)
        {
            answer = "WED";
        }
        else if(days%7 == 0)
        {
            answer = "THU";
        }
        
        return answer;
    }
}

 

 

//////

 

 

using System;

public class Solution {
    public string solution(int a, int b) {
       string answer = "";

            DateTime dateValue = new DateTime(2016,a,b);
            answer = dateValue.DayOfWeek.ToString().Substring(0,3).ToUpper();

            return answer;
    }
}

 

 

 

using System;

public class Solution {
    public string solution(int a, int b) {
        string answer = "";

        string[] dayOfTheWeek = new string[7]{"SUN","MON","TUE","WED","THU","FRI","SAT"};
        int[] daysOfMonth = new int[12]{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        int totalDays = 5; //1월 1일이 금요일 이라서 초기화를 5로 시킨다.
        
        for(int i = 0 ; i < a - 1 ; i++)
        {
            totalDays += daysOfMonth[i];
        }

        totalDays += b - 1;
        answer = dayOfTheWeek[totalDays%7];

        return answer;
    }
}

 

 

////////////////

자바

 

 

 

class Solution {
  public String solution(int a, int b) {
      String answer = "";

      int[] c = {31,29,31,30,31,30,31,31,30,31,30,31};
      String[] MM ={"FRI","SAT","SUN","MON","TUE","WED","THU"};
      int Adate = 0;
      
      for(int i = 0 ; i< a-1; i++)
      {
          Adate += c[i];
      }
      
      Adate += b-1;
      answer = MM[Adate %7];

      return answer;
  }
}

 

 

 

import java.time.*;
class Solution {
  public String solution(int a, int b) {
      return LocalDate.of(2016, a, b).getDayOfWeek().toString().substring(0,3);
  }
}

 

 

 

import java.time.*;

class TryHelloWorld
{
    public String getDayName(int a, int b)
    {
       LocalDate date = LocalDate.of(2016, a, b);
       return date.getDayOfWeek().toString().substring(0, 3);
    }
    
    public static void main(String[] args)
    {
        TryHelloWorld test = new TryHelloWorld();
        int a=5, b=24;
        System.out.println(test.getDayName(a,b));
    }
}
728x90

설정

트랙백

댓글

728x90
SMALL

public class Solution {
    public long solution(int a, int b) {
        long answer = 0;

        while (a != b)
        {
            answer += a;
            a = (a > b) ? a - 1 : a + 1; /// a가 b보다 크면 a를 감소시켜서 b까지 되게 하고, 안 그러면 증가시켜서 b와 같게 한다. 
        }

        return answer + b;
    }
}

 

 

자바(등차수열의 합 공식 > (마지막 항 + 첫 항)/2 * 배열 갯수

 

 

class Solution {

    public long solution(int a, int b) {
        return sumAtoB(Math.min(a, b), Math.max(b, a));
    }

    private long sumAtoB(long a, long b) {
        return (b - a + 1) * (a + b) / 2;
    }
}

 

 

class Solution {
  public long solution(int a, int b) {
      long answer = 0;

      if (a < b) 
      {
          for (int i = a; i <= b; i++) 
          {
              answer += i;
          }
      } 
      else 
      {
          for (int i = b; i <= a; i++) 
          {
              answer += i;
          }
      }
      
      return answer;
  }
}

 

 

 

class Solution {
  public long solution(int a, int b) {
      long answer = 0;
      for (int i = ((a < b) ? a : b); i <= ((a < b) ? b : a); i++) 
          answer += i;

      return answer;
  }
}
728x90

설정

트랙백

댓글

728x90
SMALL

using System;

public class Solution {
    public bool solution(string s) {
        int count = 0;
        
        for(int i = 0;i<s.Length;i++)
        {
            count = s[i] == '(' ? count+1 : count-1;

// if/else문으로 하면 시간초과라고 안된다. 배열에서 (면 카운트를 플러스, 아니면 카운트를 마이너스
            if(count < 0)
            {
                return false;

// 맨 처음에 count가 -1이하가 되면 바로 false를 반환하게 한다. )가 앞에 나오면 거기서 게임이 끝난 것이기 때문에 시간을 절약할 수 있기도 하다.

// 앞에서 count가 -1이 되면 (가 있어도 해결이 안되니까, 예를 들어 )(면 에러 그렇게 되게 코드가 되어 있다.
            }
        }

        return count == 0;
    }
}

 

 

/////

자바

 

 

import java.util.Stack;
class Solution {
    boolean solution(String s) {
        boolean answer = true;  
        String res = "YES";
        Stack<Integer> st = new Stack<>();

        for (int i = 0; i < s.length(); i++) 
        {
                if (s.charAt(i) == '(') 
                {
                    st.push(1);
                } 
                else if (s.charAt(i) == ')') 
                {
                    if (st.isEmpty()) 
                    {
                        answer = false;
                        break;
                    } 
                    else 
                    {
                        st.pop();
                    }
                }
            }

            if(!st.isEmpty()) 
            {
                answer = false;
            }

            System.out.println(res);
        return answer;
    }   
}

 

 

 

class Solution {
    boolean solution(String s) {
        boolean answer = false;
        int count = 0;
        
        for(int i = 0; i<s.length();i++)
        {
            if(s.charAt(i) == '(')
            {
                count++;
            }
            if(s.charAt(i) == ')')
            {
                count--;
            }
            
            if(count < 0)
            {
                break;
            }
        }
        
        if(count == 0)
        {
            answer = true;
        }

        return answer;
    }
}
728x90

설정

트랙백

댓글