전체 글 106

[Java] 05. 메소드와 파라미터*

Chatper 1: 메소드메소드 선언메소드 호출return statement지역 변수값 returnChapter 2: 파라미터(Parameter)파라미터 선언과 호출파라미터 전달 매커니즘Pass by Value, Pass by Reference가변 길이 목록 파라미터 사용재귀 메소드 사용Chapter 3: 메소드 오버로딩(Method Overloading)메소드 오버로딩 정의메소드 시그니처오버로드된 메소드 사용Lab 5-2 메소드 오버로딩Chatper 1: 메소드 Function(함수): 특정 값을 넣으면 반드시 계산 결과의 값을 반환.  Procedure(프로시저): 값을 반환하지 않고 절차만을 수행.(C 이후의 언어들은 2가지의 경계가 모호해져서 return이 있어야 함수인데 void를 사용해서 반환..

Java 2024.08.23

[코딩 문제] Palindrom

Palindrom거꾸로 읽어도 제대로 읽는 것과 같은 문장이나 낱말, 숫자, 문자열 등이다. 보통 낱말 사이에 있는 띄어쓰기나 문장 부호는 무시한다. 문제 입력받은 숫자가 palindrom인지 알려주는 코드를 작성하시오./* 입력받은 숫자가 Palindrom 인지 알려주는 코드 */public class Palindrom { public static boolean isPalindrom(int value) { int reverseNum = 0; int reminder; int originalNum = value; while (value != 0) { reminder = value % 10; reve..

[코딩 문제] 연도 일자를 월/일로 계산하기

문제 1) 1 ~ 365 사이의 수(일)를 읽어서 월과 일로 변환한 다음 출력하는 프로그램을 작성하시오. (윤년 무시)ex) 입력: 40   ->   출력: February 9import java.util.Scanner;public class Whatday { public static void main(String[] args) { System.out.print("Enter a digit 1 between 365: "); Scanner scanner = new Scanner(System.in); String line = scanner.nextLine(); int dayNum = Integer.parseInt(line); int month..

[코딩 문제] 미로 탐색

문제N x N 크기의 배열로 표현되는 미로가 있다.int[][] maze = { {0,0,1,0,0}, {1,0,0,0,1}, {0,1,1,0,0}, {1,0,0,0,0}, {0,0,1,0,0}} 미로에서 0은 이동할 수 있는 칸을 나타내고, 1은 이동할 수 없는 칸을 나타낸다. 이런 미로가 주어졌을 때 (0, 0)에서 출발하여 (N, N)의 위치로 이동할 수 있는지 없는지의 여부를 판단하는 프로그램을 작성하라. 규칙10 x 10 배열을 임의로 생성하여 사용한다. (프롬프트에서 입력 받아 생성하는 등의 방법을 사용하지 않으며, 배열의 선언은 코드에 포함된다)한 칸에서 다른 칸으로 이동할 때는 서로 인접한 칸으로만 이동할 수 있다.9,9 배열로 이동할 수 있으면 "Pass"를 출..

[코딩 문제] TicTacToe 게임

문제틱-택-토(Tic-Tac-Toe)는 두 명이 번갈아가며 O 와 X 를 3x3 보드에 써서 같은 글자를 가로, 세로 혹은 대각선 상에 놓이도록 하는 놀이이다.아래 예시는 먼저 놓은 X가 이기는 경우이다.게임 방법은 아주 간단하다.종이 위에 가로줄과 세로줄을 각각 2개씩 긋는다.이렇게 생긴 9칸 위에 1P는 O , 2P는 X 를 번갈아가며 그린다.먼저 O 나 X 를 3개가 직선으로 이어지게 만들면 승리한다.컴퓨터와 사용자가 번갈아 Turn을 수행하여 승패를 가릴 수 있는 Tic Tac Toe 게임을 작성하라. 규칙3 x 3 배열을 사용하여 판(board)를 그린다.사용자 - 컴퓨터 - 사용자 순으로 각각의 Turn을 수행한다.Turn에서는 [X 좌표, Y 좌표] 순으로 숫자를 입력하여 수행한다. 예를 들..

[코딩 문제] Anagram

Anagram단어나 문장을 구성하고 있는 문자의 순서를 바꾸어 다른 단어나 문장을 만드는 것. 문제 입력받은 두 문장이 Anagram인지 알려주는 코드를 작성하시오./* 1. 문자열을 char[]로 변경한다 -> toCharArray(String value)2. char[]에서 공백을 제거한다 -> removeWhiteSpace(char[])3. char[]의 모든 문자를 소(대)문자로 바꾼다 -> toLowerCase(char[])4. 내림차순(오름차순)으로 정렬한다 -> sort(char[])5. 비교 후 같으면 true 아니면 false -> isAnagram(char[], char[])*/import java.util.Arrays;public class Anagram { public stat..

[OOP] 객체지향 설계 원칙: SOLID

SOLID 객체 지향 프로그래밍(OOP) 및 설계의 5가지 원칙으로 프로그래머가 소스 코드를 읽기/확장이 용이하도록 하는 전략. Single responsibility principle (SRP, 단일 책임 원칙)한 클래스는 하나의 책임만 가져야 한다.Open/closed principle (OCP, 개방-폐쇄 원칙)소프트웨어 요소는 확장에는 열려 있으나, 변경에는 닫혀 있어야 한다.Liskov substitution principle (LSP, 리스코프 치환 원칙)프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.Interface segregation principle (ISP, 인터페이스 분리 원칙)특정 클라이언트를 위한 인터페이스 여러 개가 범용 인..

Java 2024.08.23

[OOP] 객체 지향 프로그래밍(OOP)의 정의와 4가지 특징 *

01. 객체지향이란?객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, '객체'들의 상호작용(메시지 주고받기, 데이터 처리 등)으로 프로그램 로직을 구성하는 프로그램 패러다임.1. 클래스 (Class)객체의 상태와 행위를 정의. (클래스의 객체를 만들기 위한 설계 도면)객체의 속성을 나타내는 데이터 필드(멤버 변수)와 행위를 나타내는 메소드(멤버 함수)로 구성. 2. 객체 (Object)클래스의 Instance로, 실제로 메모리에 할당된 데이터.상태를 나타내는 데이터와 행위를 나타내는 메소드를 가진다.  02. 객체 지향 프로그래밍(OOP)의 4가지 특징1. 추상화 (Abstraction)복..

Java 2024.08.23

[자료구조] 버블 정렬 (Bubble Sort)

Bubble Sort(버블 정렬)인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환하는 과정을 인덱스 처음부터 끝까지 진행한다.한 번의 정렬을 거치면 오른쪽 끝부터 정렬이 완료된다. 코드import java.util.Scanner;// 버블 정렬public class BubbleSort { public void sort(int[] array) { for(int i=0; i array[j+1]) { int temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } ..

[Java] 04. Statement와 Expression

Chapter 1: Statement 개요Statement block (문 블록)Statement(문)의 종류Chapter 2: Selection Statement (선택문)if Statement (if 문)Cascading if statement (Cascading if 문)switch statement (switch 문)Chapter 3: Iteration Statement (반복문)while statement (while 문)do statement (do 문)for statement (for 문)foreach statement (foreach 문)Chapter 4: Jump Statement (분기문)goto statement (goto 문)break / continue statement (brea..

Java 2024.08.22