import java.util.HashSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
class Solution {
    public int solution(int N, int number) {
        List<Set<Integer>> result = new ArrayList<>();
        for(int i=0; i<=8; i++){
            result.add(new HashSet<>());
        }
        result.get(1).add(N); //N을 1개만 쓰는 경우
        
        for(int i=1; i<=8; i++){
            Set<Integer> set = result.get(i); //현재 set
            set.add(Integer.parseInt(String.valueOf(N).repeat(i)));
            
            for(int j=1; j<i; j++){ //이전 set들 사칙연산
                for(int left : result.get(j)){
                    for(int right : result.get(i-j)){
                        set.add(left+right);
                        set.add(left-right);
                        set.add(left*right);
                        if(right!=0) set.add(left/right);
                    }
                }
            }
            
            if(set.contains(number)) return i;   
        }
        return -1;
    }
}

 

전에 dfs로 풀었다가 명색이 dp 문젠데 ....라 해서 다시 풀었다.

result에 set이 들어가게되는데

index가 1인 경우가 N이 1개인 경우,

index가 2인 경우가 N이 2개인 경우 .... 

로 index를 바로 이용하기 위해 0은 빈공간으로 만들어주었다.

 

'NOTE > 프로그래머스' 카테고리의 다른 글

그래프 - 순위  (1) 2022.09.30
사칙연산  (0) 2022.09.29
신고 결과 받기  (0) 2022.05.10
베스트앨범  (0) 2022.04.04
카펫  (0) 2022.04.03

버튼 색 보라색일 때는

여기 확인하기

테마가 설정되어 있어서 보라색으로 계속 뜨는 거였다 하ㅏ아ㅏ

import java.util.ArrayList;
import java.util.Scanner;
import java.util.StringTokenizer;
class Solution {
	public static void main(String[] args) throws Exception{
      // TODO Auto-generated method stub
		
		Scanner sc = new Scanner(System.in);
		int T;
		T=Integer.parseInt(sc.nextLine());
	
		StringBuffer sb = new StringBuffer();
		StringTokenizer st;
		for(int test_case = 1; test_case <= T; test_case++)
		{
			
			st= new StringTokenizer(sc.nextLine()," ");
			
			int N = Integer.parseInt(st.nextToken());
			String X = st.nextToken();
			
			int temp=0;
			for(int i=0;i<X.length();i++) {
				temp += Character.getNumericValue(X.charAt(i));
			}
			
			int result = temp % (N-1);
			
			sb.append("#"+test_case+" "+result).append('\n');
			 
		}
		System.out.print(sb);
	}
}

 

모듈로 연산,, 미쳤go ,,

자릿수 더해준 것과 같은 결과 ,,,,**

 

'NOTE > SWEA' 카테고리의 다른 글

7985. Rooted Binary Tree 재구성 - d3  (0) 2022.06.15
8556. 북북서  (0) 2022.06.15
10993. 군주제와 공화제 - d3  (0) 2022.06.15
12051. 프리셀 통계 - d3  (0) 2022.06.12
13732. 정사각형 판정 - d3  (0) 2022.06.12
import java.util.ArrayList;
import java.util.Scanner;
import java.util.StringTokenizer;
class Solution {
	static int[] arr;
	static int[] result;
	static int len;
	static ArrayList<Integer> al;
	public static void main(String[] args) throws Exception{
      // TODO Auto-generated method stub
		
		Scanner sc = new Scanner(System.in);
		int T;
		T=Integer.parseInt(sc.nextLine());
	
		StringBuffer sb = new StringBuffer();
		StringTokenizer st;
		for(int test_case = 1; test_case <= T; test_case++)
		{
			int K = Integer.parseInt(sc.nextLine());
			st= new StringTokenizer(sc.nextLine()," ");
			arr = new int[st.countTokens()];
			result = new int[st.countTokens()];
			len = arr.length;
			int i=0;
			while(st.hasMoreTokens()) {
				arr[i]=Integer.parseInt(st.nextToken());
				i++;
			}
			
			restructure(0,arr.length,1);
		
			sb.append("#"+test_case+" ");	   
            
            int cnt=1;
            int index=0;
            for(int j=0; j<K ; j++) {
                for(int z=0; z<cnt; z++) {
                	sb.append(result[index]+" ");
                	index++;
                }
                cnt*=2;
                sb.append("\n");
            } 
		}
		System.out.print(sb);
	}
	
	static void restructure(int start, int end, int num) {
		if(isInterval(start)|| isInterval(end)|| isInterval(num)) return;
		
		int mid = (start+end)/2;
		
		result[num-1]=arr[mid];
	
		System.out.println(num-1);
		
		if(start==end) return;

		restructure(start,mid-1, 2*num);
		restructure(mid+1,end,2*num+1);
	}
	
	static boolean isInterval(int n) {
		return (n>len || n<0);
	}
}
 

큰일이다 내 머리놈 거부 시작하네;;

이해하는데 한참 생각했다 ㅎ

 

가운데, 왼쪽 가운데, 오른쪽 가운데 ~

이를 위해 왼쪽  2*num 오른쪽이 하나 더 큰 2*num+1

 

그러니깐,,

num-1, 2*num-1, 2*num ..  이 순서로 가운데, 왼쪽 가운데, 오른쪽 가운데 ..

 

 

 

+ 그리고 이거 쓸때마다 까먹음 ;; ㅎ ㅎ

 

* boolean hasMoreTokens() - 토큰이 더 이상 있는지 여부를 알아본다.

* countTokens() - 토큰의 개수를 리턴한다.

 

'NOTE > SWEA' 카테고리의 다른 글

7193. 승현이의 수학공부 - d3  (0) 2022.06.16
8556. 북북서  (0) 2022.06.15
10993. 군주제와 공화제 - d3  (0) 2022.06.15
12051. 프리셀 통계 - d3  (0) 2022.06.12
13732. 정사각형 판정 - d3  (0) 2022.06.12
import java.util.ArrayList;
import java.util.Scanner;

class Solution {

	public static void main(String[] args) throws Exception{
      // TODO Auto-generated method stub
		
		Scanner sc = new Scanner(System.in);
		int T;
		T=Integer.parseInt(sc.nextLine());
	
		StringBuffer sb = new StringBuffer();
		
		for(int test_case = 1; test_case <= T; test_case++)
		{
			String s = sc.nextLine();
			ArrayList<Integer> al = new ArrayList<>();
			
			if(s.endsWith("north")) {
				s=s.substring(0,s.length()-5);
				al.add(0);
			}else{
				s=s.substring(0,s.length()-4);
				al.add(90);
			}
		
			int count=1;
			int sum =0;
			
			while(!s.equals("")) {
				if(s.endsWith("north")) {
					s=s.substring(0,s.length()-5);
					al.add(-90);
				}else{
					s=s.substring(0,s.length()-4);
					al.add(90);
				}
				count*=2;
			}
			
			String result = "";

			for(int i=0; i<al.size(); i++) {
				sum += al.get(i)*(Math.pow(2,al.size()-1-i));
			}
			
			while(sum%2==0 && count!=1) {
				sum/=2;
				count/=2;
			}
			
			if(count==1) {
				result = Integer.toString(sum);
			}else {
				result = Integer.toString(sum)+"/"+Integer.toString(count);
			}
			
			sb.append("#"+test_case+" "+result).append('\n');

		}
		System.out.print(sb);
	}
}

 

 

이거는 다시 복습해야겠다 .. 

 

for(int i=0; i<al.size(); i++) {
	sum += al.get(i)*(Math.pow(2,al.size()-1-i));
}

 

이 부분,, 생각 못했다 ^^

으앙 똥 멍충이냐구요 ~

'NOTE > SWEA' 카테고리의 다른 글

7193. 승현이의 수학공부 - d3  (0) 2022.06.16
7985. Rooted Binary Tree 재구성 - d3  (0) 2022.06.15
10993. 군주제와 공화제 - d3  (0) 2022.06.15
12051. 프리셀 통계 - d3  (0) 2022.06.12
13732. 정사각형 판정 - d3  (0) 2022.06.12
import java.util.StringTokenizer;
import java.util.Scanner;

class Solution {
	static StringTokenizer st;
	static String[] result; 
	static Country[] countries;
	public static void main(String[] args) throws Exception{
      // TODO Auto-generated method stub
		
		Scanner sc = new Scanner(System.in);
		int T;
		T=Integer.parseInt(sc.nextLine());
	
		StringBuffer sb = new StringBuffer();
		
		for(int test_case = 1; test_case <= T; test_case++)
		{
			int N = Integer.parseInt(sc.nextLine());
			countries = new Country[N+1];
			for(int i=1; i<=N; i++) {
				st = new StringTokenizer(sc.nextLine()," ");
				int X = Integer.parseInt(st.nextToken());
				int Y = Integer.parseInt(st.nextToken());
				double S = Double.parseDouble(st.nextToken());
				countries[i]=new Country(X,Y,S);
			}
			
			result = new String[N+1];
			for(int i=1; i<=N; i++) {
				double maxThreat =0; 
				for(int j=1; j<=N; j++) {
					if(i==j)continue;
					double threat = threat(countries[j],countries[i]);
					if(threat>countries[i].s) {
						if(threat>maxThreat) {
							maxThreat = threat;
							countries[i].control=j;
						}else if(threat==maxThreat) {
							countries[i].control=-1;
						}
					}
				}
			}
			
			sb.append("#"+test_case+" ");
			
			String result ="";
			for(int i=1; i<=N; i++) {
				result+= getResult(i)+" ";
			}
			sb.append(result+'\n');
		}
		System.out.print(sb);
	}
	static double threat(Country i, Country j) {
		return i.s/(Math.pow((j.x-i.x),2)+Math.pow((j.y-i.y),2)); 
	}
	
	static String getResult(int i) {
		if(countries[i].control==-1) { //여러개
			return "D";
		}else if(countries[i].control==0) {
			return "K";
		}else{
			return Integer.toString(getAncestor(i));
		}
	}
	
	static int getAncestor(int i) {
	    if(countries[i].control == -1 || countries[i].control== 0) {
	         return i;
	    }else {
	         return getAncestor(countries[i].control);
	    }
	}
}

class Country{
	int x;
	int y;
	double s; //군사력
	int control=0;
	public Country(int x, int y, double s) {
		this.x = x;
		this.y = y;
		this.s = s;
	}
}

 

자꾸 테케  일부만 맞아가지고

화만 가득이다가 풀이 봤다..

(근데 난,,문제 안풀리면 웰케 화가 날까 ,,,? ㅋ ㅎ ㅋ ㅎ 🤯😂)

내가 못 풀 문제였던 것 같다. 잘 안풀어본 문제..

 

문제의 부분은 정답 출력과 getAncestor 부분..

만약 3을 5가 지배했다면 3이 지배했던 나라들도 5가 지배하는 걸로 바뀌게 되는데

이 부분 구현을 잘못했다.

 

i를 누가 지배를 하고 있다면, i를 지배한 나라의 지배한 나라를 확인 ........ 이런 식으로 타고타고,,

그래서 ancestor..

이렇게 푸는 방식을 전혀 생각하지 못한 부분이었다.😭

 

'NOTE > SWEA' 카테고리의 다른 글

7985. Rooted Binary Tree 재구성 - d3  (0) 2022.06.15
8556. 북북서  (0) 2022.06.15
12051. 프리셀 통계 - d3  (0) 2022.06.12
13732. 정사각형 판정 - d3  (0) 2022.06.12
13038. 교환학생 - d3  (0) 2022.06.11
import java.util.StringTokenizer;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
class Solution {
	public static void main(String[] args) throws IOException{
      // TODO Auto-generated method stub
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int T;
		T=Integer.parseInt(br.readLine());
		
		StringBuffer sb = new StringBuffer();
		StringTokenizer st;
		for(int test_case = 1; test_case <= T; test_case++)
		{
			st = new StringTokenizer(br.readLine()," ");
			long N = Long.parseLong(st.nextToken());
			int pD = Integer.parseInt(st.nextToken());
			int pG = Integer.parseInt(st.nextToken());

			boolean check = true;
			
			if((pG==100 && pD!=100)|| (pG==0 && pD !=0) || isInteger(N,pD)==false ) {
				check =false;
			}
			String result = (check == true) ? "Possible" : "Broken";

			sb.append("#"+test_case+" "+result).append('\n');
		}
		System.out.print(sb);
	}
	static boolean isInteger(Long N, int pD) {
		for(Long i=N; i>=1; i--) {
			if((i*pD)%100 ==0) return true;
		}
		return false;
	}
}

 

제출 제일 많이 했던 문제 같다 .. ㅋ ㅋ ..

제출만 하면 런타임 에러 떠서 화 가득이었다🤯

이왜안..?

 

결국 활동점수 깎고 다른 사람 풀이를 봤는데

내 문제였다 마자 컴퓨터는 잘못없지 ..

 

N의 범위는 1 ≤ N ≤ 10^15

 

이걸 Long으로 안받아서 ............... 반성하자..^^

 

그리고 정수인지 확인하는 부분에서 % 활용하는거 생각 못했다..  앞으로 활용해야지 🔥

'NOTE > SWEA' 카테고리의 다른 글

8556. 북북서  (0) 2022.06.15
10993. 군주제와 공화제 - d3  (0) 2022.06.15
13732. 정사각형 판정 - d3  (0) 2022.06.12
13038. 교환학생 - d3  (0) 2022.06.11
10761. 신뢰 - d3  (0) 2022.06.11

 

자꾸 tistory.com 이 안들어가져서 뭐지 했다..🤯

 

http://downforeveryoneorjustme.com/

 

Is it down? Check at Down for Everyone or Just Me

Check if a website or service is down or having problems + report your problems! Click now to check/report problems!

downforeveryoneorjustme.com

 

이 사이트를 통해 나만 저런 에러 뜨는 지 확인할 수 있다.. 

확인 결과 내 문제였고 ..

 

크롬 설정에서

쿠키 및 기타 사이트 데이터를 삭제 해주어서 해결 했다 ,, ^^ 😂

'NOTE > etc' 카테고리의 다른 글

파일에 해시 값 알기  (0) 2021.11.13
Python - exe파일 만들기  (0) 2021.11.13
gcp 학습 중 에러  (0) 2021.11.10
GCP AI Platform 으로 학습하기  (0) 2021.11.09
IT 용어  (0) 2021.10.16

+ Recent posts