2/28 TIL

큰모래·2023년 2월 28일
0

GIT


Merge

  • 병합하고자하는 브렌치를 현재 브렌치에 병합해 새로운 커밋을 만들어내는 작업
  • 명령어 : git merge [브렌치명]


실습1 (병합)

  1. git init
  2. touch 0 && git add . && git commit -m "C0"
  3. touch 1 && git add . && git commit -m "C1"
  4. git checkout -b bugFix
  5. touch 2 && git add . && git commit -m "C2"
  6. git checkout main
  7. touch 3 && git add . && git commit -m "C3"
  8. git merge bugFix -m "C4"


실습2 (병합 충돌)

  1. git init
  2. touch 0 && git add . && git commit -m "C0"
  3. git checkout -b bugFix
  4. echo '안녕' > 1 && git add . && git commit -m "C1"
    4.1. 파일의 내용을 안녕 으로 설정 후 커밋
  5. git checkout main
  6. echo '잘가' > 1 && git add . && git commit -m "C2"
    6.1. 파일의 내용을  잘가 으로 설정 후 커밋
  7. git merge bugFix
    7.1. 충돌발생, 자동병합에 실패
    7.2. 개발자가 직접 병합해야 함.
  8. echo '안녕잘가' > 1
    8.1. 충돌수습
  9. git add .
  10. git commit -m "C3, 병합"
    10.1. 병합커밋

자바


스트림

  • 컬렉션에 저장된 값들을 하나씩 순회하면서 처리하는 방식
  • 람다식으로 사용되어 코드가 매우 간결해진다.
  • .stream(sc.nextLine().split(" ")
    • 스트림 객체 생성 및 split 으로 나눈 값들을 순차적으로 순회한다.
  • .mapToLong(e -> Long.parseLong(e))
    • 스트림을 LongStream 으로 변환해주는 메서드
  • .sum()
    • 각 요소들의 합을 구한다.
import java.util.Arrays;
import java.util.Scanner;

//입력 예시 : 77 77 7777
//출력 예시 : 77+77+7777 = 7931
7931

class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        long sum = Arrays.stream(sc.nextLine().split(" "))
                .mapToLong(e -> Long.parseLong(e))
                .sum();

        System.out.println(sum);

        sc.close();
    }
}

실습1 ( -1을 입력할때까지 값을 계속 입력받는 프로그램, 마지막은 정렬)

  • 올바른 수를 입력하면 list 에 계속해서 담는다.
  • -1을 입력하면 무한루프 탈출
  • list.stream() : list 값을 하나씩 순회
  • .sorted() : 오름차순 정렬
  • .map(e -> "" + e) : 값을 맵핑
  • .collect(Collectors.joining(", ")) : 순회하는 값 사이에 “, “ 를 추가

import java.util.*;
import java.util.stream.Collectors;

public class Problem59_1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        StringBuilder sb = new StringBuilder();

        int num = 0;
        int k = 0;
        List<Integer> list = new ArrayList<>();

        while (true) {
            System.out.print("숫자를 입력해주세요(-1 : 종료) : ");
            num = sc.nextInt();
            if (num == -1) {
                break;
            }

            list.add(num);
            k++;
        }

        System.out.println("입력을 종료합니다.");
        System.out.print("입력한 숫자(오름차순) : ");

        String str = list.stream()
                        .sorted()
                        .map(e -> "" + e)
                        .collect(Collectors.joining(", "));

        System.out.println(str);
        System.out.println("프로그램을 종료합니다.");
    }
}

실습2 (HashMap을 이용한 정보 저장)

  • mapvalue 값으로 들어가는 타입이 다양하므로 Object 타입으로 설정

import java.util.HashMap;
import java.util.Map;

//사람 1 정보
//- 이름 : 홍길동
//- 나이 : 22
//- 키 : 170.5
//
//사람 2 정보
//- 이름 : 홍길순
//- 나이 : 25
//- 키 : 162.4
//
//맵을 이용해서 각각의 사람 정보를 저장해주세요.
//- 클래스를 정의하지 마세요.

public class Problem63_1 {
    public static void main(String[] args) {
        Map<String, Object> map1 = new HashMap<>();
        Map<String, Object> map2 = new HashMap<>();
        map1.put("이름", "홍길동");
        map1.put("나이", 22);
        map1.put("키", 170.5);

        map2.put("이름", "홍길순");
        map2.put("나이", 25);
        map2.put("키", 162.4);

        System.out.println(map1);
        System.out.println(map2);

    }

}

실습3 (내가 생성한 객체 정렬)


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Problem63_2 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        List<Device> list = new ArrayList<>();
        int n = Integer.parseInt(br.readLine());

        for (int i = 0; i < n; i++) {
            st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            list.add(new Device(a, b));
        }

        Collections.sort(list, new Comparator<Device>() {
            @Override
            public int compare(Device o1, Device o2) {
                return o1.id - o2.id;
            }
        });

        for (Device device : list) {
            System.out.println(device.id + " " + device.gas);
        }
    }

    public static class Device {
        int id;
        int gas;

        public Device(int id, int gas) {
            this.id = id;
            this.gas = gas;
        }
    }
}

실습4 (List,HashMap 활용)


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Problem63_3 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        List<Integer> list1 = new ArrayList<>();
        List<Integer> list2 = new ArrayList<>();
        Map<Integer, Integer> map = new HashMap<>();
        int N = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());
        for (int i = 0; i < N; i++) {
            int num = Integer.parseInt(st.nextToken());
            list1.add(num);
            list2.add(num);
        }

        Collections.sort(list1);
        for (int i = 0; i < N; i++) {
            map.put(list1.get(i), i);
        }

        for (int i = 0; i < N; i++) {
           sb.append(map.get(list2.get(i)) + " ");
        }

        System.out.println(sb);
    }

}

기타

// map에서 내가 원하는 value값 찾기

for (String name : map.keySet()) {
		int age = map.get(name);

		if(age == 20) {
		
				System.out.println(name);

		}
}
profile
큰모래

0개의 댓글