2023.08.02.WED

ronglong·2023년 8월 2일
0

[ 프로그래머스 ]

[ 시저 암호 ]

: 아스키코드 표 보고 하드로 풀었다,,
https://blog.naver.com/PostView.nhn?blogId=jysaa5&logNo=221831226674

class Solution {
    public String solution(String s, int n) {
        String answer = "";
        
        for(int i=0; i<s.length(); i++){
            char c = s.charAt(i);
            int num = (int) c;
            if(c==' ') answer += "";
            if(num >= 97 && num <= 122) {
                if(num + n > 122) {
                    num = num - 26 + n;
                } else {
                    num += n;
                }
            } else if(num >= 65 && num <= 90) {
                if(num + n > 90) {
                    num = num - 26 + n;
                } else {
                    num += n;
                }
            }
            answer += (char) num;
        }
        
        return answer;
    }
}

[ 영어 끝말잇기 ]

import java.util.*;

class Solution {
    public int[] solution(int n, String[] words) {
        //리스트
        ArrayList<String> list = new ArrayList<>();
        //정답 배열
        int[] answer = new int[2];
        //1번 단어 넣기
        list.add(words[0]);
        
        //words를 순회하면서 새로운 리스트에 넣고, 비교.
        for(int i=1; i<words.length; i++){
            //해당 단어가 이전에 나왔으면 탈락, 이전 단어와 이어지지 않으면 탈락 
            if(list.contains(words[i]) || 
                !words[i-1].substring(words[i-1].length()-1)
               .equals(words[i].substring(0,1))){
                
                answer[0] = (i+1)%n==0? n : (i+1)%n;
                answer[1] = (i+1)%n==0? (i+1)/n : (i+1)/n + 1;
                    
                //탈락된 사람의 번호와 턴 횟수를 리턴
                return answer;
            }
            list.add(words[i]);
        }
        return answer;
    }
}

[ 카펫 ]

import java.util.*;
import java.lang.*;

class Solution {
    public int[] solution(int brown, int yellow) {
        int[] answer = new int[2];
        int x = 0;
        int y = 0;
        // x >= y
        // x * y = brown + yellow;
        // (x-2) * (y-2) = yellow;
        
        //약수 모음 구하기
        for(int i=1; i<=Math.sqrt(brown+yellow); i++){
            if((brown+yellow)%i==0) {
                y = i;
                x = (brown+yellow)/y;
                
                if((x-2)*(y-2) == yellow){
                    answer[0] = x;
                    answer[1] = y;
                    return answer;
                }
            }
        }
        return answer;
    }
}

[ 느낀 점 ]

중간에 업무 대기하면서 코테 풀었다.
회사 보안때문에 코테 푼 거 깃헙 푸시가 안 돼서, 주말에 다시 제출하고 푸시할 예정,,

회사에 있다보면 아주 레거시하고 문제가 많은 프로그램을 보면서 해결하고 싶은 게 생겨서, 백수일 때보다 만들고 싶은 프로그램이나 아이디어가 생긴다.

원래는 이번 주말부터 이전에 했던 프로젝트 리팩토링하면서 querydsl 적용해보려고 했는데, 아예 새로운 개인 프로젝트 하나 해보면서 querydsl도 적용해보려 함.

와이어프레임으로 간단하게 화면 정의서부터 시작해서, 요구사항 정의서, DB 설계 등,
즉 처음부터 쭉 만들어볼 예정이다.
현재 생각하는 적용할 기능들은 결제 api, QR코드, 엑셀 업로드 및 다운로드, 문자 발송, querydsl, 웹소켓을 이용한 전체 채팅방 ,,,

0개의 댓글