Stay Hungry Stay Foolish

분류 전체보기 423

[자바 중급] 02. 불변 객체

기본형과 참조형의 공유자바의 데이터 타입은 크게 기본형(Primitive Type)과 참조형(Reference Type)으로 나눌 수 있다.기본형 : 하나의 값을 여러 변수에서 절대로 공유하지 않는다.참조형 : 하나의 객체를 참조값을 통해 여러 변수에서 공유할 수 있다. 공유 참조와 사이드 이펙트사이드 이펙트(Side Effect)는 프로그래밍에서 어떤 계산이 주된 작업 외에 추가적인 부수 효과를 일으키는 것을 말한다.사이드 이펙트는 프로그래밍에서는 부정적인 의미로 사용된다. 프로그램의 특정 부분에서 발생한 변경이 의도치 않게 다른 부분에 영향을 미치기 때문에 디버깅이 어려워지고 코드의 안정성이 저하될 수 있다. 사이드 이펙트가 발생한 경우의 예제package lang.immutable.address;p..

[자바 중급] 01. Object 클래스

Object 클래스자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object 클래스이다. 부모를 상속받으려면 'extends'를 명시적으로 붙여 상속을 받아야 한다. 그러나 Object 클래스는 'extends'를 붙이지 않아도 상속된다. 즉 부모가 없으면 묵시적으로 Object 클래스를 상속받는다.  Object 클래스가 최상위 부모 클래스인 이유는 다음과 같다. 공통 기능 제공객체의 정보를 제공하는 toString()객체의 같음을 비교하는 equals()객체의 클래스 정보를 제공하는 getClass()기타 여러가지 기능다형성의 기본 구현 Object 다형성의 장점어떤 객체든지 인자로 전달할 수 있다는 장점이 있다. 한계Object는 모든 객체를 대상으로 다형적 참조를 할 수 있다. Object를 ..

BOJ 10886번 : 0 = not cute / 1 = cute (Java/구현/Bronze 3)

10886번: 0 = not cute / 1 = cute 준희는 자기가 팀에서 귀여움을 담당하고 있다고 생각한다. 하지만 연수가 볼 때 그 의견은 뭔가 좀 잘못된 것 같았다. 그렇기에 설문조사를 하여 준희가 귀여운지 아닌지 알아보기로 했다. www.acmicpc.net 설명 다음 N개의 줄에는 각 줄마다 각 사람이 설문 조사에 어떤 의견을 표명했는지를 나타내는 정수가 주어진다. 0은 준희가 귀엽지 않다고 했다는 뜻이고, 1은 준희가 귀엽다고 했다는 뜻이다. 준희가 귀엽지 않다는 의견이 더 많을 경우 "Junhee is not cute!"를 출력하고 , 귀엽다는 의견이 많을 경우 "Junhee is cute!"를 출력하라. Solution Java import java.util.Scanner; public..

[자바 기초] 06. 스캐너(Scanner)

Scanner System.out 을 통해서 출력을 했듯이, System.in 을 통해서 사용자의 입력을 받을 수 있다. 그런데 자바가 제공하는 System.in 을 통해서 사용자 입력을 받으려면 여러 과정을 거쳐야해서 복잡하고 어렵다. 자바는 이런 문제를 해결하기 위해 Scanner 라는 클래스를 제공한다. 이 클래스를 사용하면 사용자 입력을 매우 편리하게 받을 수 있다. 형식 import java.util.Scanner; Scanner를 쓰기 위해선 java.util 패키지를 import 해주어야 한다. Scanner scanner = new Scanner(System.in); 그 다음, main 내에 Scanner의 객체를 만든다. Scanner는 System.in을 사용해서 사용자의 입력을 편리하..

자바 2024.03.26

BOJ 2441번 : 별 찍기 - 4 (Java/구현/Bronze 4)

2441번: 별 찍기 - 4 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 설명 다음과 같이 별을 출력해야 한다. ***** **** *** ** * Solution import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int star = scanner.nextInt(); for(int i = 0; i < star; i++) { for (int j = star - i; j < star; j+..

[자바 기초] 05. 스코프(Scope), 형변환(Casting)

변수는 선언한 위치에 따라 지역 변수, 멤버 변수(클래스 변수, 인스턴스 변수)와 같이 분류된다. 앞 게시글에서 사용했던 변수들은 모두 Local Variable(로컬 변수), 한글로 지역 변수라고 한다. 지역 변수는 이름 그대로 특정 지역에서만 사용할 수 있는 변수라는 뜻이다. 그 특정 지역을 벗어나면 사용할 수 없다. 여기서 말하는 지역이 바로 변수가 선언된 코드 블록( {} )이다. 지역 변수는 자신이 선언된 코드 블록( {} ) 안에서만 생존하고, 자신이 선언된 코드 블록을 벗어나면 제거된다. 따라서 이후에는 접근할 수 없다. 🔘 Scope란? 변수의 접근 가능한 범위를 스코프(Scope, 범위)라고 한다. 접근 범위에 따라서 스코프가 넓다 혹은 좁다라고 표현할 수 있다. Scope1(while문..

BOJ 10953번 : A+B - 6 (Python, Java/구현/Bronze 3)

10953번: A+B - 6 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 설명 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 단, A와 B는 콤마(,)로 구분되어 있다. Solution Python t = int(input()) for _ in range(t): print(sum(list(map(int, input().split(","))))) Java import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); //테스트 케이..

BOJ 10797번 : 10부제 (Python, Java/구현/Bronze 4)

10797번: 10부제 서울시는 6월 1일부터 교통 혼잡을 막기 위해서 자동차 10부제를 시행한다. 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 www.acmicpc.net 설명 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 것이다. 10부제를 위반하는 자동차의 대수를 출력하면 된다. 풀이 주어지는 일의 자리 숫자와 자동차 번호가 일치하는 것만 찾아서 결과를 출력하면 된다. 반복문을 통해 자동차 번호를 입력하면, 자동차 번호와 일의 자리 숫자가 같은 건 결과값에 1씩 더한다. 입력이 끝나면 결과값을 출력한다. Solution Java import java.util.*;..

[자바 기초] 04. 반복문(while/do-while/break/continue/for)

반복문 while문 do-while문 break continue for문 중첩 반복문 🔘 while문 while문은 조건에 따라 코드를 반복해서 실행할 때 사용한다. 형식 while (조건식) { // 코드 } 조건식이 참이면 코드 블럭을 실행하고, 이후에 코드 블럭이 끝나면 다시 조건식 검사로 돌아가서 조건식을 검사한다. 조건식이 거짓이면 while문을 벗어난다. (거짓일 때까지 무한반복) 예제 - while문을 사용하여 1을 한 번씩 더해서 총 3번 더하는 프로그램을 작성한다. While1_2 package loop; public class While1_2 { public static void main(String[] args) { int count = 0; while (count < 3) { cou..

BOJ 10101번 : 삼각형 외우기 (Python, Java/구현/Bronze 4)

10101번: 삼각형 외우기 문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다. www.acmicpc.net 설명 세 각의 크기가 모두 60이면, Equilateral 세 각의 합이 180이고, 두 각이 같은 경우에는 Isosceles 세 각의 합이 180이고, 같은 각이 없는 경우에는 Scalene 세 각의 합이 180이 아닌 경우에는 Error 를 출력하는 프로그램을 작성하시오. Solution Java import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a, b, c; a = ..

[자바 기초] 03. 조건문(if/else if/switch/삼항 연산)

조건문 if문 switch문 🔘 if문 if 문은 특정 조건이 참인지 확인하고, 그 조건이 참( true )일 경우 특정 코드 블록을 실행한다. 형식 if (condition) { // 조건이 참일 때 실행되는 코드 } 예제 - 나이가 18세 이상일 경우 "성인입니다." 라는 문구를 출력하고, 18세 미만일 경우 "미성년자입니다."라는 문구를 if문을 사용해서 출력하라. 변수는 age라고 하고 초기값은 20으로 한다. If1 package cond; public class If1 { public static void main(String[] args) { int age = 20; if(age >= 18){ System.out.println("성인입니다."); } if(age = 18) - 참 두 번째 i..

BOJ 2752번 : 세수정렬 (Python, Java/구현/Bronze 4)

2752번: 세수정렬 정수 세 개가 주어진다. 이 수는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 수는 모두 다르다. www.acmicpc.net 설명 정수 세 개가 주어지면, 이를 오름차순으로 정렬하여 출력해야 한다. 풀이 sort() 메소드를 사용 Solution Java import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] num = new int[3]; for(int i = 0; i < 3; i++) { num[i] = sc.nextInt(); } Arrays.sort(num); for(int i = 0; i < ..

BOJ 3003번 : 킹, 퀸, 룩, 비숏, 나이트, 폰 (Python, Java/구현/Bronze 5)

3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net 설명 체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다. 동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오. 입력은 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 출력은 첫째 줄에 입력에서 주어진 순서대로 몇 개의 피스를 더하거나 빼야 되는지를 출력한다. 만약 수가 양수라면 동혁이는 그 개수 만큼 피스를 더해야 하..

[자바 기초] 02. 연산자(Operator)

연산자 종류 산술 연산자 : +, -, *, /, % (나머지 연산자) 증감(증가 및 감소) 연산자 : ++, -- 비교 연산자 : == , != , > , = , , >>> ) 비교 연산자 ( = , instanceof ) 등식 연산자 ( == , != ) 비트 연산자 ( & , ^ , | ) 논리 연산자 ( && , || ) 삼항 연산자 ( ? : ) 대입 연산자 ( = , += , -= , *= , /= , %= 등등) Operator3 package operator; public class Operator3 { public static void main(String[] args) { int sum1 = 1 + 2 * 3; // 1 + (2 * 3) int sum2 = (1 +..

[Git Bash Error] ! [rejected] master -> master (fetch first) git push 에러

Git Bash에서 commit을 하고 push를 하려는데!! 제목과 같은 에러가 났다. ❓원인 원격 저장소에서 Reame.md 파일을 변경했기 때문이다. ※ 원격 저장소는 보통 깃허브에 있는 저장소를 말하고, 로컬 저장소는 자신의 컴퓨터에 저장된 저장소를 말한다. 깃허브에서 Readme.md파일을 수정하면 깃허브에서는 변경이 되어 있지만, 프로그램 내의 Readme.md파일은 수정되어 있지 않다. 원격에서 파일을 변경했으면 로컬에서도 변경이 되어야 하는데 안 되어 있다. 동기화가 안 돼서 사용자가 직접 해주어야 한다. ❗해결 방법 1. repository를 가져온다. git pull master origin 2. 다시 push를 한다. git push -u origin master 혹은 git push..

TIL 2024.03.19