본문 바로가기
내일배움캠프/내일배움캠프

[내일배움캠프] 2024. 09. 03. TIL

by TIP__ 2024. 9. 3.

안녕하세요.

2024. 09. 03. 화요일 TIL입니다.

 

오늘은 Java 문법 종합 강의 2주차 강의를 수강하고 문제 풀이까지 마쳤습니다.

그리고 이어서 3주차 강의를 수강하고 있는데 2주차까지는 어느정도 엑셀 매크로 만들 때도 사용했던 내용들이 조금 있어서 따라갈 수는 있었는데 3주차에 진입하니... 너무 어렵네요.

일단 한 번 쭉 보고 난 후에 다시 보면서 복습을 꼭 해야 할 것 같습니다.

데일리 루틴 코드카타

오늘은 하샤드 수 라는 문제풀이를 했습니다.

https://tip-blog-welcome.tistory.com/entry/%EB%82%B4%EC%9D%BC%EB%B0%B0%EC%9B%80%EC%BA%A0%ED%94%84-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Daily-Routine-21-%ED%95%98%EC%83%A4%EB%93%9C-%EC%88%98

 

[내일배움캠프] 알고리즘 Daily Routine 21. 하샤드 수

안녕하세요. 21회차 과제 "하샤드 수"입니다.문제 설명양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므

tip-blog-welcome.tistory.com

오늘 배운 것

연산자

연산자의 종류

 -. 연산자 우선 순위 : 산술 > 논리 > 비교 > 대입

  • 산술 연산자 : +, -, *, /, %, <<, >>
  • 비교 연산자 : >, <, >=, <=, ==, !=
  • 논리 연산자 : &&, ||, !
  • 대입 연산자 : =, ++, --
  • 기타 연산자
    • 형변환 연산자 : (type)을 입력함으로써 피연산자의 타입을 변경
    • 삼항 연산자 : 비교 연산의 결과값에 따라 응답할 값을 지정할 수 있는 연산자
    • instance of : 피연산자가 조건에 명시된 클래스의 객체인지 비교하여 참/거짓으로 응답

조건문

if : 특정 조건에 따라 다른 연산을 수행할 때 사용

//if - else
if(조건){
	조건이 참인 경우
    	} else {
    	조건이 거짓인 경우
    	}

 

if - elseif

//if - elseif
if (조건1){
	조건1이 참인 경우
    	} elseif (조건2) {
    	조건2가 참인 경우
    	} else {
    	조건1, 조건2가 모두 거짓인 경우
    	}

 

if - if

//if - if
if (조건1) {
	조건1이 참인 경우
    	if (조건2) {
    		조건1이 참이고 조건2도 참인 경우
        	} else {
        	조건1이 참이고 조건2가 거짓인 경우
        	}
    	조건1이 거짓인 경우
    	}

 

 

 

shitch - case : 피연산자 한 개에 대하여 조건을 사용할 때 사용

//switch - case
switch (대상) {
	case '조건1' : 대상이 조건1인 경우
    		       break;
    	case '조건2' : 대상이 조건2인 경우
    		       break;
                   .
                   .
                   .
    	default : 대상이 조건과 부합하지 않는 경우
    }

 

반복문

for : 특정 조건에 따라 연산을 반복할 때 사용하며 for(초기값; 조건문; 증가연산) {연산} 형태로 사용

while : 특정 조건에 따라 연산을 반복할 때 사용하며 초기값 없이 조건문만 명시 while(조건문) {연산}

do-while : 최초 1회 연산 수행 후 조건문을 체크하여 반복을 결정 do{연산} while(조건문)

 

다차원 배열

1개의 열만이 아닌 그 이상의 열을 가진 배열의 형태로 더 많은 데이터를 저장할 수 있다.

 

컬렉션

배열을 고도화시켜 컬렉션이라는 이름의 참조형 분류통을 제공

  • List : 순서가 있는 데이터의 집합 (데이터 중복 허용)
  • Queue : 빨대처럼 한 쪽에서 데이터를 넣고 반대쪽에서 데이터를 뺄 수 있는 집합
    • FIFO : 먼저 들어간 데이터 순서대로 값을 조회 가능
  • Set : 순서가 없는 데이터의 집합 (데이터 중복 허용하지 않음)
  • Map : 순서가 없는 (Key, Value) 쌍으로 이루어진 데이터의 집합

과제

자료구조 요리 레시피 메모장 만들기

더보기

입력값

 -. 저장할 자료구조명을 입력합니다.(List, Set, Map)

 -. 내가 좋아하는 요리 제목을 먼저 입력합니다.

 -. 이어서 내가 좋아하는 요리 레시피를 한 문장씩 입력합니다.

 -. 입력을 마쳤으면 마지막에 "끝" 문자를 입력합니다.

출력값

 -. 입력이 종료되면 저장한 자료구조 이름과 요리 제목을 괄호로 감싸서 먼저 출력해줍니다.

 -. 이어서, 입력한 모든 문장 앞에 번호를 붙여서 입력 순서에 맞게 모두 출력해줍니다.

import java.util.*;

public class Main {
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        String type = sc.nextLine();
        String title = sc.nextLine();
        int i = 0;

        switch (type) {

            case "list" :
                ArrayList<String> strList = new ArrayList<String>();
                while(true){
                    String input = sc.nextLine();
                    if (input.equals("끝")){break;}
                    strList.add(input);
                }
                System.out.println("[ List로 저장된 " + title + " ]");
                for (String value: strList) {
                    System.out.println(i+1 + ". " + value);
                    i++;
                }
                break;
            case "set" :
                Set<String> strSet = new HashSet<String>();
                while(true){
                    String input = sc.nextLine();
                    if (input.equals("끝")){break;}
                    strSet.add(input);
                }

                System.out.println("[ Set으로 저장된 " + title + " ]");
                for (String value: strSet){
                    System.out.println(i+1 + ". " + value);
                    i++;
                }
                break;
            case "map" :
                Map<Integer, String> strMap = new HashMap<>();
                while(true) {
                    String input = sc.nextLine();
                    if (input.equals("끝")) {break;}
                    strMap.put(i+1, input);
                    i++;
                }
                System.out.println("[ Map으로 저장된 " + title + " ]");
                i = 1;
                for (String key: strMap.values()){
                    System.out.println(i +  ". " + key);
                    i++;
                }
                break;
            default:
        }
    }
}

 

오늘 배운 항목들을 조합하여 만들 수 있었습니다.

 

내일도 오늘보다는 조금 더 나은 내가 되도록 노력하겠습니다.

댓글