10월 2일 개인공부

안효빈·2022년 10월 2일
0

개인 공부

목록 보기
22/36

프로그래머스 코테 [제일 작은 수 제거하기] 자바

문제

import java.util.*;
class Solution {
    public int[] solution(int[] arr) {
        ArrayList answer1 = new ArrayList();
        
            int d = 0;
			int[] arr2 = new int[arr.length];
			
			for(int i = 0; i < arr.length; i++) {
				
				arr2[i] = arr[i];
				
			}
			
			
			
			
			//arr오름차순 정렬
			for(int i = 0; i < arr.length; i++) {
				for(int j = 0; j < arr.length-1; j++) {
					if(arr[j]>arr[j+1]) {
						int a;
						a = arr[j];
						arr[j] = arr[j+1];
						arr[j+1] = a;
					}
				}
			}
			
			
			
            //d에 최소값을 넣음
			if(arr.length != 0) {
				d = arr[0];
			}else {
				d = -1;
			}
            
            
			ArrayList<Integer> al = new ArrayList<Integer>();
			for(int i = 0; i < arr.length; i++) {
				al.add(arr2[i]);
			}
			
			
			for(int j = 0; j < al.size(); j++) {
			for(int i = 0; i < al.size(); i++) {
				if(al.get(i) == d) {
					al.remove(i);
					break;
				}
			}
			}
			
			
			if(al.size() == 0) {
				al.add(-1);
			}
			
			
			int[] answer = new int[al.size()];
	        
	        for(int i = 0; i < al.size(); i++){
	            answer[i] = al.get(i);
	        }
		
        
        for(int o = 0; o < al.size(); o++){
            
	            answer1.add(al);
        }
        
        
        
        return answer;
    }
}

+7점

코드가 엄청 길고 복잡함
근데 하다 안하다 하다 안하다해서 내가 어디에 뭘썼는지 기억이 안남
귀찮아서 막 하다보니까 통과하길래 그냥 썼음


프로그래머스 코테 [음양 더하기] 자바

class Solution {
    public int solution(int[] absolutes, boolean[] signs) {
        int answer = 123456789;
        int s = 0;
        
        
        for(int i = 0; i < absolutes.length; i++){
            if(signs[i] == false) {
            	absolutes[i] *= -1;
            }
        }
        
        
        for(int i = 0; i < absolutes.length; i++){
            s += absolutes[i];
        }
        
        answer = s;
        
        return answer;
    }
}

+1점


프로그래머스 코테 [가운데 글자 가져오기] 자바

class Solution {
    public String solution(String s) {
        
        String answer = "";
        
		char an = 'a';
		char an1 = 'a';
		int b = 0;
		
        int a = s.length();
        
        if(a % 2 == 0) {
        	
        	b = (a/2);
        	an = s.charAt(b-1);
        	an1 = s.charAt(b);
            
            answer += String.valueOf(an);
            answer += String.valueOf(an1);
        	
        	
        }else {
        	
        	b = (a/2);
        	an = s.charAt(b);
        	answer += String.valueOf(an);
        	
        }
        
        
        return answer;
    }
}

+1점

복습할점 : char를 String으로 바꿀때 쓰는 함수 ==> String.valueOf(char객체)

남의 풀이

class StringExercise{
    String getMiddle(String word){

        return word.substring((word.length()-1) / 2, word.length()/2 + 1);    
    }

substring쓰면 알아서 범위 인덱스 값 사이의 문자를 가져온다 함

내 현탐도 가져옴


프로그래머스 코테 [없는 숫자 더하기]

class Solution {
    public int solution(int[] numbers) {
        int answer = -1;
        int s = 0;
        
        for(int i = 0; i < numbers.length; i++)
        {
            s += numbers[i];
        }
        answer = 45 - s;
        
        return answer;
    }
}

+1점


프로그래머스 코테 [수박수박수박수박수박수?]

+1점


프로그래머스 코테 [내적]

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;
    }
}

+1점


프로그래머스 코테 [문자열 내림차순으로 배치하기]

포문으로 해결가능하지만 무작정 돌리는 포문 코딩은 별로 도움도 안될거같고 슬슬 다른 방법도 배우고싶어서 검색함.

[참고자료] : https://velog.io/@ju_h2/JAVA-int-String-%EB%B0%B0%EC%97%B4%EC%9D%98-%EC%98%A4%EB%A6%84%EC%B0%A8%EC%88%9C-%EB%82%B4%EB%A6%BC%EC%B0%A8%EC%88%9C-%EC%A0%95%EB%A0%AC

Arrays.sort를 이용하는 방법

import java.util.*;


class Solution {
    public String solution(String s) {
        String answer = "";
        
        
        char[] a = new char[s.length()];
		
		
		for(int i = 0; i < s.length(); i++) {
			a[i] = s.charAt(i);
		}
		
		Arrays.sort(a);
		
		
		for(int i = 0; i < s.length(); i++) {
			
			answer += a[s.length()-i-1];
			
		}
		
        
        return answer;
    }
}

+2점

복습할점 : Arrays.sort()의 활용법


프로그래머스 코테 [문자열 다루기 기본]

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        
        char[] a = new char[s.length()];
		
		
		if(s.length() == 4 || s.length() == 6) {
			answer = true;
		}else {
			answer = false;
		}
		
		
		//아스키코드활용
		for(int i = 0; i < s.length(); i++) {
			
			a[i] = s.charAt(i);
			if((int)a[i] < 48 || (int)a[i] > 57) {
				System.out.println((int)a[i] + "이고");
				answer = false;
			}
			
		}
        
        return answer;
    }
}

+9점


profile
다들 화이팅

0개의 댓글