728x90
SMALL

Stack을 이용하는 거다.

 

C#기준으로 stack은 LIFO 개념인데, Last In First Out이다. 마지막에 들어간 게 처음으로 나온다는 의미이다.

push는 스택에 값을 때려박는 거고 pop는 맨 위에 있는 값(마지막에 들어간 값)을 리턴하면서 그걸 삭제하는 개념인 듯하다.

peek는 가장 top에 위치한 값을 리턴하는데 pop이랑은 다르게 삭제하지는 않는 방식인 거 같다.

2중 for문을 방지하기 위해서 stack을 활용한다.

s.Peek < [i]

리셋하기 위해서 s.Pop도 쓴다.

 

 

 

C#

 

 

 

public class Solution {
    public int[] solution(int[] numbers) {
        int[] answer = new int[numbers.Length];
        var s = new System.Collections.Generic.Stack<int>();
        
        for (int i = 0; i < numbers.Length; i++) 
        {
            answer[i] = -1;
            
            while (s.Count > 0) 
            {
                if (numbers[s.Peek()] < numbers[i]) 
                {
                    answer[s.Peek()] = numbers[i];
                    s.Pop();
                }
                else 
                {
                    break;
                }
            }
            s.Push(i);
        }
        return answer;
    }
}

 

 

 

using System;
using System.Collections.Generic;
using System.Linq;

public class Solution {
    public int[] solution(int[] numbers) {
        int[] answer = new int[numbers.Length]; 
        Stack<int> stack = new Stack<int>();

        for(int i = numbers.Length-1 ; i>=0 ; i--)
        {
            if(stack.Count ==0)
            {
                answer[i]=-1;
                stack.Push(numbers[i]);
                continue;
            }

            while(stack.Count>0)
            {
                if(stack.Peek()>numbers[i])
                {
                    answer[i]=stack.Peek();
                    stack.Push(numbers[i]);                    
                    break;
                }
                stack.Pop();
            }

            if(answer[i]==0)
            {
                answer[i]=-1;
                stack.Push(numbers[i]);
            }


        }
        return answer;
    }
}

 

 

 

자바

 

 

 


import java.util.*;

class Solution {
    public int[] solution(int[] numbers) {
        Stack<Integer> stack = new Stack<>();
        int[] ret = new int[numbers.length];

        for(int i = 0;i<numbers.length;i++) 
        {
         // 하강 직선일 때는 push
            if(stack.isEmpty() || numbers[i]<numbers[i-1]) 
            {
                 stack.push(i);
            } 

            else 
            {
             // 현재값보다 작은 index는 pop하여 현재값으로
                 while(!stack.isEmpty() && numbers[stack.peek()]<numbers[i]) 
                 {
                     ret[stack.pop()] = numbers[i];
                 }
                stack.push(i);
           }
     }
        // 나머지는 -1
         while(!stack.isEmpty()) 
         {
            ret[stack.pop()] = -1;
         }
     return ret;
    }
}

728x90

설정

트랙백

댓글

728x90
SMALL

자바

 

 

import java.util.*;

public class Main{

public static void main(String args[]){
  Scanner sc = new Scanner(System.in);
    int length = sc.nextInt();
    int sum = 0;
    String str = sc.next();
    
    for(int i = 0;i<length;i++)
    {
        sum += int.Parse(str.charAt(i)-48);
        
    }
    System.out.println(sum);
    
    }
}

 

 

 

///////////

 

 

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
 
public class Main {
public static void main(String[] args) throws IOException {
 
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
br.readLine(); // N 은 쓸모가 없으므로 입력만 받는다.

int sum = 0;

for(byte value : br.readLine().getBytes()) {
sum += (value - '0'); // 또는 (a-48)
}

System.out.print(sum);

}
}

 

 

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

 

 

 

 

C#

 

 

 

using System;

namespace Baekjoon {
    class Program {
        static void Main(string[] args) {
            int length = int.Parse(Console.ReadLine());
            int sum = 0;
            string str = Console.ReadLine();
            
            for(int i = 0;i<str.Length;i++)
            {
                sum += int.Parse(str[i].ToString());         
            }
            
            Console.WriteLine(sum);
        }
    }
}

 

 

728x90

설정

트랙백

댓글

728x90
SMALL

자바

 

 

 

import java.util.Scanner;
 
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int ch = in.next().charAt(0);
System.out.print(ch);
}
}

 

 

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

 

 

C#

 

 

using System;

namespace Baekjoon {
    class Program {
        static void Main(string[] args) {
            char number = Convert.ToChar(Console.ReadLine());
            int num = Convert.ToInt32(number);
            Console.WriteLine(num);
        }
    }
}

728x90

설정

트랙백

댓글

728x90
SMALL

자바

 

 

 

import java.util.*;

public class Main{
public static void main(String args[]){
    boolean [] a = new boolean[10001];
    
    for(int i = 1;i<10001;i++)
    {
        int n = d(i);
        
        if (n < 10001) 
        {                    //10000보다 작은 수만
            a[n] = true;
        }
    }
        
    for(int i = 1;i<10001;i++)
    {
        if(a[i] == false)
        {
            System.out.println(i);
        }
    }
}
    
    public static int d(int number){
        int sum = number;
        
        while (number != 0)
        {
            sum += number%10;                   // number의 첫째 자리수
            number = number/10;                 //나누기로 첫째자리 수 제외
        }
        return sum;                             // int n이 된다
    }
}

 

 

 

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

 

 

 

C#

 

 

 

 

using System;
using System.Collections.Generic;
using System.Linq;
 
internal class Program
{
    private static void Main()
    {
        List<int> answer = new List<int>(Enumerable.Range(1,10000));
        
        for(int i = 0;i<10000;i++)
        {
            answer.Remove(selfnum(i));
        }
        
        Console.WriteLine(string.Join("\n", answer));
    }
    
    private static int selfnum(int i)
    {
        i = i+1;  
        string str_i = i.ToString();
        int num = i;
        
        for(int j = 0;j<str_i.Length;j++)
        {
            num += int.Parse(str_i[j].ToString());
        }
        
        return num;
    }
}

 

 

 

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

 

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
internal class Program
{
    private static void Main()
    {
        StringBuilder result = new StringBuilder();
 
        var integers = Enumerable.Range(1, 10000).ToList();
        var notSelfNumbers = new Queue<int>();
        
        foreach (var i in integers)
        {
            int sum = i;
            foreach (var j in i.ToString())
            {
                sum += int.Parse(j.ToString());
                /// 자릿수 더하기
            }
            notSelfNumbers.Enqueue(sum);
        }
 
        while (notSelfNumbers.Count != 0)
        {
            int n = notSelfNumbers.Dequeue();
            // 셀프 넘버가 아닌 것을 삭제한다.
            integers.Remove(n);
        }
        
        foreach (var item in integers)
        {
            result.AppendLine(item.ToString());
        }
 
        Console.WriteLine(result.ToString());
    }
}

728x90

설정

트랙백

댓글

728x90
SMALL

유튜브 펌

728x90

설정

트랙백

댓글

728x90
SMALL

자바

 

 

 

class Test {
    long sum(int[] a) {
    long sum = 0;
        
        for(int i = 0; i < a.length; i++) 
        {
            sum += a[i];
        }
return sum;
}
}

728x90

설정

트랙백

댓글

728x90
SMALL

자바

 

 

 

import java.util.*;

public class Main{

public static void main(String args[]){
  Scanner sc = new Scanner(System.in);
    int length = sc.nextInt();
    double sum = 0;

 

    for(int i = 0;i<length;i++)
    {
        int stu = sc.nextInt();
        int arr[] = new int[stu];
        sum = 0;
        int score = 0;

 

        for(int j = 0; j<stu;j++)
        {
            score = sc.nextInt();
            arr[j] = score;
            sum += score;
        }
        
        double index = 0;
        double avg = sum / stu;

 

        for(int j = 0; j<stu;j++)
        {
            if(arr[j] > avg)
            {
                index++;
            }
        }

 

        System.out.printf("%.3f%%\n", (index / stu) * 100);

        index = 0;

 

        }
    sc.close();
}
}

 

 

 

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

 

 

 

 

C#

 

 

 

 

using System;

namespace Baekjoon {
    class Program {
        static void Main(string[] args) {
            int length = int.Parse(Console.ReadLine());
            int sum = 0;
  
            for(int i = 0;i<length;i++)
            {
                string[] stu = Console.ReadLine().Split();
                
                for(int j = 1;j<int.Parse(stu[0])+1;j++)
                {
                    sum += int.Parse(stu[j]);
                }
                
                double index = 0;
                double avg = sum / int.Parse(stu[0]);
                
                for(int j = 1; j < int.Parse(stu[0])+1;j++)
                {
                    if(int.Parse(stu[j]) > avg)
                    {
                        index++;
                    }
                }
                
                Console.WriteLine($"{(index / int.Parse(stu[0])) * 100:F3}%");
                sum = 0;
            }
        }
    }
}

728x90

설정

트랙백

댓글

728x90
SMALL

자바

 

 

 

import java.util.*;

public class Main{
public static void main(String args[]){
  Scanner sc = new Scanner(System.in);
    int length = sc.nextInt();
    String arr[] = new String[length];
    int sum = 0;
    int score = 0;
    
    for(int i = 0;i<length;i++)
    {
        arr[i] = sc.next();
    }
    
    for(int i = 0;i<length;i++)
    {
        for(int j = 0;j<arr[i].length();j++)
        {
            if(arr[i].charAt(j) == 'O')
            {
                score++;
                sum += score;
            }
            else
            {
                score = 0;
            }
        }
        System.out.println(sum);
        sum = 0;
        score = 0;
    }
}
}

 

 

 

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

 

 

 

 

C#

 

 

 

using System;

namespace Baekjoon {
    class Program {
        static void Main(string[] args) {
            int length = int.Parse(Console.ReadLine());
            int sum = 0;
            int score = 0;
            
            for(int i = 0;i<length;i++)
            {
                string ox = Console.ReadLine();
                
                for(int j = 0;j<ox.Length;j++)
                {
                    if(ox[j] == 'O')
                    {
                        score++;
                        sum += score;
                    }
                    else
                    {
                        score = 0;
                    }
                }
                Console.WriteLine(sum);
                sum = 0;
                score = 0;
            }
        }
    }
}

728x90

설정

트랙백

댓글