[9일 차] 알고리즘 (Basic)

2025. 2. 6. 13:53·LG 유플러스 유레카/알고리즘

25/02/06 (목)

요즘 너무 피곤해서 이틀동안 주짓수도 빼먹고 일찍 잠들어서 드디어 체력을 회복했습니다.

국취제 상담을 갔다 오느라 오전을 거의 통째로 날려버렸습니다.

진짜 너무너무 추웠는데 그래도 어찌저찌 잘 다녀왔습니다.

갔다 와서 곧바로 접속하니 알고리즘의 기본인 별 찍기를 하고 있습니다.

다행히 워크샵을 오래해서 진도는 안나갔다니 다행입니다.

드디어 알고리즘이구나!

신나게 공부해 보겠습니다.

큐랑 어레이리스트좀 공부해야겠습니다.


1.  WorkShop 발표

국취제 때문에 하나도 못들었습니다ㅠ

 

2.  강의

2.1. Basic 알고리즘

1) star

package basic.star;

public class Star1 {
    public static void main(String[] args) {
        int turnCnt = 5;
        int spaceCnt = 0;

        for (int i = 0; i < 5 ; i++) {
            for (int j = 0; j < 5 ; j++) {
                if(j < spaceCnt){
                    System.out.print(" ");
                }else{
                    System.out.print("*");
                }
            }
            System.out.println();
            spaceCnt++;
        }
    }
}
=============================================================================================
package basic.star;

public class Star2 {
    public static void main(String[] args) {
        int turnCnt = 7 / 2; //모양이 바뀌는 지점 (공백문자가 증가하다가 감소하는 지점)
        int spaceCnt = 0; //출력 공백 수 (증가했다가 감소)
        boolean spaceIncrease = true; //공백 문자가 계속 증가해야하는지, 감소해야 하는지
        for (int i = 0; i < 7; i++) {
            for (int j = 0; j < 7; j++) {
                if(j < spaceCnt){
                    System.out.print(" ");
                }else if(j < 7-spaceCnt){
                    System.out.print("*");
                }
            }
            System.out.println();

            if(spaceIncrease) spaceCnt++;
            else spaceCnt--;

            if(spaceCnt == turnCnt) spaceIncrease = false;
        }
    }
}

이정도야 뭐 식은죽먹기죠

 

2) array

package basic.array;

public class Array1 {
    public static void main(String[] args) {
        //#1. 주어진 배열의 원소들 중 제시된 규칙과 다른 항목이 몇 건인지
        //맨 앞부터 3개씩 묶어서 곱셈 결과가 맞으면 통과 틀리면 WrongCnt 증가
        //3,2,6 : 3x2=6 통과
        //3,4,4 : 3x4=12 != 4 wrongCnt
        {
            int[] intArray = {3,2,6, 3,4,4, 1,4,2, 2,3,6, 1,3,5, 1,5,1, 1,1,1, 2,4,2, 2,2,4};
            int wrongCnt = 0;
            for (int i = 0; i < intArray.length-2; i += 3) {
                if(intArray[i] * intArray[i+1] != intArray[i+2]) {
                    wrongCnt++;
                }
            }
            System.out.println(wrongCnt);
        }

        //#2. 양 끝에서 출발해서 안쪽으로 이동하면서 각 대칭 항목이 다른건 몇 건
        {
            char[] charArray = "XYZEBFFGQOVVPWGFFCEAYX".toCharArray();
            int wrongCnt = 0;
            for (int i = 0; i < charArray.length/2; i ++) {
                if(charArray[i] != charArray[charArray.length-1-i]) {
                    wrongCnt++;
                }
            }
            System.out.println(wrongCnt);
        }

        {
            char[] charArray = "XYZEBFFGQOVVPWGFFCEAYX".toCharArray();
            int wrongCnt = 0;
            for (int i = 0, j = charArray.length-1; i < charArray.length/2; i ++, j--) {
                if(charArray[i] != charArray[j]) {
                    wrongCnt++;
                }
            }
            System.out.println(wrongCnt);
        }

        //#3. 문자열에 포함된 알파벳의 빈도수 출력, 0인 항목도 출력
        {
            String str = "abbcccddddeeeeeffffggghhiabbcccddddeeeeeffffggghhi";
            //모든 알파벳 소문자가 몇 번 반복되었는지 출력
            for (int i = (int)'a'; i < (int)'z'; i++) {
                int count = 0;
                for (int j = 0; j < str.length(); j++) {
                    if(str.charAt(j) == (char)i) {
                        count++;
                    }
                }
                System.out.println((char)i+" : "+count);
            }

        }
    }
}

추천문제> 백준 1158

 

3) input

 

4) delta

 

2.2.  Queue와 ArrayList

1) Queue

//선언
Queue<자료형> 변수명 = new LinkedList<>(); //자료형에 넣은 자료만 삽입, 삭제
Queue 변수명 = new LinkedList(); //어떤 자료형이든 삽입, 삭제

//add
q.add(value);
q.offer(value);

//remove
q.remove();
q.remove(value);
q.poll(); //출력하면서 삭제

//front value return
q.element();
q.peek();

//clear
q.clear();

//size
q.size();

//contains
q.contains(value);

//empty
q.isEmpty();
  • FIFO 성격을 지닌 자료구조

 

2) ArrayList

//선언
ArrayList<자료형> 변수명 = new ArrayList<>(); //자료형에 넣은 자료만 삽입, 삭제

//add
al.add(value);
al.add(index,value);
sl.set(index,value);

//remove
al.remove(index); //return 가능
al.remove(value);

//clear
al.clear();

//size
al.size();

//contains
al.contains(value); //boolean
al.indexOf(value); //index

//empty
q.isEmpty();
  • 동적할당 : 리스트의 길이가 가변적이다

 

3.  마무리

1) WorkShop

추천문제> 백준 1158

그런데 풀지 못했습니다..

Queue랑 ArrayList를 쓰지 못해서..

위에 다시 공부 해놨습니다.

 

2) 오늘 식단

버거킹 불맛 더블치즈와퍼 먹었습니다.

맥도날드 쿼터파운드 치즈버거가 더 맛있습니다.

'LG 유플러스 유레카 > 알고리즘' 카테고리의 다른 글

[12일 차] 알고리즘 (Basic4)  (0) 2025.02.11
[11일 차] 알고리즘 (Basic3)  (0) 2025.02.10
[10일 차] 알고리즘 (Basic2)  (0) 2025.02.07
'LG 유플러스 유레카/알고리즘' 카테고리의 다른 글
  • [13일 차] 알고리즘 (Basic5)
  • [12일 차] 알고리즘 (Basic4)
  • [11일 차] 알고리즘 (Basic3)
  • [10일 차] 알고리즘 (Basic2)
문태신
문태신
3대500 백엔드 개발자가 꿈입니다.
  • 문태신
    별 될 시간
    문태신

  • 전체
    오늘
    어제
    • 전체 글 (82) N
      • LG 유플러스 유레카 (78) N
        • 강의 정리 (5)
        • 소프트웨어 엔지니어링 (8)
        • 알고리즘 (13)
        • 데이터베이스 활용 (5)
        • 미니 프로젝트 1 (3)
        • 데이터베이스 심화 (5)
        • 프론트엔드 이해 (3)
        • 깃허브 특강 (2)
        • 취업 특강 (2)
        • 스프링 프레임워크 (16)
        • 후기 (1)
        • REST API (9)
        • 미니 프로젝트 2 (6) N
      • 자격증 (1)
      • 디자인 (2)
      • 감상문 (1)
        • 책 (0)
        • 영화 (1)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
문태신
[9일 차] 알고리즘 (Basic)
상단으로

티스토리툴바