
(구현에 의존하는 구조)메서드 인자는 가능한 한 무엇을 할 수 있느냐(List)에만 관심이 있어야 하고,어떻게 구현됐느냐(ArrayList)는 알 필요 없음 ArrayList에 의존하면, 내부 구조까지 강요하는 셈
문제
꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다!
입력
첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 1012승)이 공백을 사이에 두고 주어진다.
출력
A+B+C의 값을 출력한다.
예제 입력
77 77 7777
예제 출력
7931
풀이
package ioarithmetic;
import java.util.Scanner;
public class BOJ_11382_TripleSum {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
long a=sc.nextLong();
long b=sc.nextLong();
long c=sc.nextLong();
System.out.println(a+b+c);
}
}
첫번째 줄에 입력 3개가 들어오고 입력값이 10의 12승 이상 이다.
입력값이 정수를 받는 int의 범위를 넘기때문에 long을 사용해야함
64비트(8바이트) 크기의 정수형 자료형
-2⁶³ ~ 2⁶³-1 범위의 정수를 저장할 수 있음
long을 사용했기때문에 Scanner도 nextLong사용
문제
아래 예제와 같이 고양이를 출력하시오.
예제출력
\ /\
) ( ')
( / )
\(__)|
풀이
package ioarithmetic;
public class BOJ_10171_Cat {
public static void main(String[] args) {
System.out.println("\\ /\\");
System.out.println(" ) ( ')");
System.out.println("( / )");
System.out.println(" \\(__)|");
}
}
문제
아래 예제와 같이 개를 출력하시오.
예제 출력
|\_/|
|q p| /}
( 0 )"""\
|"^"` |
||_/=\\__|
풀이
package ioarithmetic;
public class BOJ_10172_Dog {
public static void main(String[] arg){
System.out.println("|\\_/|");
System.out.println("|q p| /}");
System.out.println("( 0 )\"\"\"\\");
System.out.println("|\"^\"` |");
System.out.println("||_/=\\\\__|");
}
}
코드의 변경 이력을 독립적으로 실험하고 개발할 수 있게 해주는 분기점
지금까지의 커밋 이력을 그대로 복사한 후,그 위에서 자유롭게 실험하거나 개발할 수 있음
main은 기본 선로 기능 하나 만들고 싶을 때, 새 선로(브랜치)를 만들고 그 위에서 작업
다 끝나면 다시 main에 합쳐(merge)
이러면 main 선로가 안전하게 유지되면서도,새로운 실험도 가능함
| 기능 | 명령어 | 설명 |
|---|---|---|
| 브랜치 목록 보기 | git branch | 현재 있는 브랜치들 확인 |
| 새 브랜치 생성 | git branch 기능A | 기능A 브랜치 만들기 |
| 브랜치 이동 | git checkout 기능A | 해당 브랜치로 이동 |
| 생성 + 이동 한 번에 | git checkout -b 기능A | 브랜치 생성 후 바로 이동 |
| 브랜치 병합 | git merge 기능A | 현재 브랜치에 기능A 내용을 병합 |
| 브랜치 삭제 | git branch -d 기능A | 병합 후 기능A 브랜치 삭제 |
git checkout -b feature/login→ 로그인 기능 개발
git add .
git commit -m "✨ 로그인 기능 구현 완료"
git checkout main
git merge feature/login→ main에 기능을 병합
README.md는 프로젝트의 첫인상이자 설명서
일반적인 구성 예시
# 프로젝트 이름
> 간단한 소개글
## 📁 폴더 구조
- `main.java`: 메인 코드
- `utils/`: 유틸리티 클래스 모음
## 🛠 사용 기술
- Java 17
- Git
## 🚀 실행 방법
```bash
javac Main.java
java Main
파일이름은 항상 파일 이름은 항상 `README.md
.md`는 Markdown 문법 → 제목, 리스트, 코드 블록 등을 쉽게 쓸 수 있음
gitignore란?`.gitignore`는 Git이 추적하지 않아야 할 파일을 지정하는 목록
예를 들어:
- 컴파일된 파일 (`.class`)
- IDE 설정 파일 (`.idea/`, `.vscode/`)
- 민감한 정보 (`.env`)
- 임시 로그 파일 (`*.log`)
이렇게 설정하면 git add에 올라가지 않음 git add에 올라가면 ignore에 있어도 git hub에 올라감
처음에 ignore하는걸 잊어버리면 add가 추적하는걸 지워야지 github에 올라가지 않음 git rm --cache
| 타입 | 의미 |
|---|---|
| feat | 새로운 기능 추가 |
| fix | 버그 수정 |
| docs | 문서 수정 (README 등) |
| style | 코드 포맷, 세미콜론 누락 등 기능에 영향 없는 변경 |
| refactor | 코드 리팩토링 (기능 변화 없음, 구조 개선 목적) |
| test | 테스트 코드 추가/수정 |
| chore | 기타 자잘한 작업 (빌드, 설정 파일 변경 등) |
| perf | 성능 개선 |
| ci | CI 관련 설정 변경 (예: GitHub Actions 설정 변경 등) |
| build | 빌드 시스템 또는 외부 의존성 변경 (예: Gradle, npm 패키지 추가) |
Check out -n KeywordSearch생성 완료
작업 후 계속 예정
매번 gpt한테 이모지랑 맞춤법 검사 해달라고했는데 그 작업이 너무 오래걸리고 오히려 내가 안쓴것같은 진정성이 떨어지는거 같아서 앞으론 내가 메모장에 적어놓은 내용을 그대로 쓸려고 합니다 ! 그래도 오늘도 고생했다! 나!