문제 https://school.programmers.co.kr/learn/courses/30/lessons/181948 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제설명 !@#$%^&*(\'"?:; 출력해보기 (이스케이프문자) 풀이 자바에서 백슬래시(\)와 따옴표(', ")는 문자 자체로 출력이 되지 않으므로 출력시 바로앞에 백슬래시를 넣어준다. 코드 import java.util.Scanner; public class Solution { public static void main(String[] args) { System.out.println("..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요. 풀이 입력한 문자열의 길이만큼 반복하면서 해당 index의 글자(c)가 대문자 인 경우 조건문을 통과하여 toLowerCase() 메서드를 통해 소문자로 바꿔준다. 해당 index의 글자(c).가 소문자인 경우에는 toUpperCase() 메소..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수 a와 b가 주어집니다. 각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성해 보세요. 풀이 Scanner 객체를 통해 입력받은 값을 각 변수에 저장하고 출력했다. 코드 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181850 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 실수 flo가 매개 변수로 주어질 때, flo의 정수 부분을 return하도록 solution 함수를 완성해주세요. 풀이 명시적 타입변환으로 double(8byte) -> int(4byte) 다운캐스팅을 수행했다. 코드 class Solution { public int solution(double flo) { return (int)flo; } }
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181879 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요. 풀이 배열의 길이가 11이상인 경우 배열을 순회하며 원소의 합을 answer에 누적한다. 미만인경우 곱하기를 수행하므로 초기 answer의 값을 num_list[0]의 값으로 지정하..
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 앞에서 알아본 byte 단위의 입출력만으로도 파일, 콘솔, 네트워크 전송까지 전혀 문제 없이 입출력을 수행할 수 있지만, 실제 입출력에서 가장 많이 사용되는 데이터는 단연 문자열이다. 대표적으로 채팅 프로그램이 있다. char 단위의 입출력은 문자열 입출력을 위해 특화된 기법으로, char 단위로 입출력을 수행하는 기본 클래스는 Reader와 Writer 추상 클래스다. Reader와 Writer 상속 구조 Reader 클래스의 자식 클래스에는 FileReader, BufferedReader, InputStreamReader가 있다. Writer의 자식 클래스에는 FileWriter, BufferedWriter, OutputSt..
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 자바 입출력(Java IO)는 프로그램을 기준으로 외부로부터 데이터가 들어오는 입력(input)과 프로그램에서 외부로 나가는 출력(output)으로 구성된다. byte 단위 입출력과 char 단위 입출력 자바의 입출력은 크게 byte 단위의 입출력과 char 단위의 입출력으로 나뉘는데, byte 단위의 입출력은 말 그대로 송수신하고자 하는 데이터를 byte 단위로 쪼개 보내고 받는 것이다. 모든 데이터는 byte의 모음이므로 어떠한 파일이든 상관없다. char 단위 입출력은 채팅 프로그램과 같이 텍스트 전송에 특화된 방법이다. 물론 byte 단위 입출력으로도 텍스트 정보를 송수신 할 수 있지만, char 단위 입출력이 훨씬 효츌..
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 데이터를 처리하는 모든 프로그램은 처리 대상이 되는 데이터를 읽거나 처리한 데이터를 저장 또는 출력하는 기능을 포함한다. 19장에서는 파일 또는 콘솔에서 다양한 형태로 데이터를 읽고, 이를 다시 파일 또는 콘솔로 출력하는 방법에 대해 알아본다. 파일 관리와 문자셋 자바의 입출력을 이해하려면 자바에서 파일을 관리하는 방법과 문자셋(charset)의 개념을 알 필요가 있다. 먼저 자바에서 파일을 관리하는 방법을 알아본다. 자바로 파일 관리하기 파일 객체 생성 자바의 File 클래스는 파일(file)과 폴더(directory)를 관리하는 클래스로, 다음처럼 대표적인 4개의 생성자 중 하나를 이용해 객체를 생성한다. 클래스의 이름이 F..
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 람다식 람다식은 객체 지향형 언어인 자바에서 함수형 프로그래밍 방식을 쓸 수 있게 해주는 문법 요소다. 자바에서 람다식은 자바 8버전부터 사용할 수 있다. 자바에서 메서드를 사용하려면 항상 클래스 객체를 먼저 생성한 후 생성한 객체로 메서드를 호출해야 한다. 그런데 이 공통 기능을 일반적인 함수처럼 독립적으로 만든 후 모든 클래스에서 공통적으로 사용할 수 있다면 훨씬 효율적일 것이다. 하지만 자바는 객체 지향 언어이므로 외부에 독립적으로 함수를 구성할 수 없다. 항상 클래스 내부에 메서드로 존재해야 하고, 메서드를 사용하기 위해서는 클래스의 객체를 먼저 생성한 후에 호출해야 한다. 이를 해결하기 위해 나온 방법이 '람다식'이다...
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. Stack 컬렉션의 특징 Stack 컬렉션은 17장에서 다루는 5개 컬렉션 중 유일하게 클래스다. 즉, 자체적으로 객체를 생성할 수 있다. 상속 구조를 살펴보면 List 컬렉션의 구현 클래스인 Vector 클래스의 자식 클래스로 후입선출(LIFO: last in first out)자료구조를 구현한 컬렉션이다. 당연히 Vector의 모든 기능을 포함하고 있으며, 여기서 추가로 LIFO 구조를 위한 5개의 메서드가 추가됐다. 이 추가 메서드는 Stack 클래스에서 추가됐으므로 사용하려면 변수를 Stack 타입으로 선언해야 한다. Stack의 주요 메서드 구분 리턴 타입 메서드명 기능 데이터 추가 E push(E item) 매개변수의..