본문 바로가기
반응형

코딩테스트51

자바 Java | 이클립스 Eclipse 시작하기 | Hello world 출력 ✅ 이클립스 Eclipse 시작하기 Hello world를 출력하는 자바 프로그램을 이클립스 Eclipse로 개발해 본다. 💡 프로젝트 생성 [File] > [New] > [Java Project]를 클릭한다. 프로젝트 이름을 입력한다. [Create module-info.java file]를 해제한다. [Finish]를 클릭한다. 프로젝트가 생성되었다. 💡 클래스 생성 [프로젝트] > [New] > [Class]를 클릭한다. Package: 내용이 없는 것을 확인한다. Name: 클래스 이름을 입력한다. [public static void main(String[] args)]를 클릭한다. 💡 Hello World 출력하기 다음을 입력한다. System.out.println("Hello world"); .. 2023. 2. 14.
자바 Java | 이클립스 Eclipse 초기 설정 | 워크스페이스 Workspace, 뷰 view, 퍼스펙티브 perspective ✅ 이클립스 Eclipse 💡 이클립스 Eclipse 워크스페이스 Workspace 이클립스 Eclipse를 시작한다. 실행하면 작업할 폴더의 위치를 지정하는 대화 상자가 나타난다. 작성하는 모든 자바 프로젝트 폴더가 바로 이 워크스페이스에서 지정한 위치에 생성된다. 이 폴더의 위치는 [file]의 [swith workspace] 메뉴를 이용하여 바꿀 수 있다. 이클립스 설정 파일들은 워크스페이스별로 관리되므로 작업할 위치를 바꾸면 이클립스가 다시 시작된다. 워크스페이스 경로를 입력한 후 [Launch]를 누르고 잠시기다리면 이클립스가 실행된다. 프로젝트 수가 많아지거나 성격이 다른 프로젝트를 저장할 때 새로운 워크스페이스를 만들어서 분리하면 편리하다. 💡 이클립스 Eclipse 설정 이클립스 화면은 여.. 2023. 1. 9.
자바 Java | 이클립스 Eclipse 설치하기 | 자바 개발도구 JDK, JAVA SE 11, 환경변수 설정, 통합 개발 환경 IDE ✅ 이클립스 Eclipse 설치하기 자바 프로그래밍을 위해서는 간단한 편집기만 있어도 개발이 가능하지만, 이클립스와 같은 고급 개발 도구를 활용하면 더욱 편리하고 효율적으로 개발할 수 있다. 이클립스는 자바 프로그래밍을 위한 통합 개발 환경(IDE, Integrated Development Environment)으로, 개발자들이 필요한 다양한 기능들을 제공한다. ✅ 자바 개발 도구 JDK 11 💡 자바 개발 도구 JDK 11 다운로드 자바로 프로그래밍을 하기 위해서는 자바 개발도구 JDK, Java Development Kit를 설치하여야 한다. JDK를 설치하면 자바 가상 머신과 자바 클래스 라이브러리 Java API 등 필요한 프로그램들이 설치된다. 현재 학습하기 위해서는 JDK 8.0 이상의 버전이.. 2023. 1. 9.
자바 Java | 자바 프로그램 개발과 실행: 소스코드 작성부터 main 메소드, 클래스파일 생성, 실행과정까지 상세히 알아보기 ✅ 자바 프로그램 개발 과정 자바 프로그램 코드가 포함된 소스파일(.java)을 작성한다. public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } 소스파일(.java)을 컴파일하여 클래스파일(.class)을 생성하기 위해서 자바 컴파일러(javac.exe)를 실행한다. javac HelloWorld.java 생성된 클래스파일(.class)을 실행하기 위해 자바 인터프리터(java.exe)를 실행한다. java HelloWorld ✅ 자바 프로그램 실행 과정 프로그램의 실행에 필요한 클래스파일(.class)을 로드한다. MyProgram은 실행하고자 하는 클래스의 이름을.. 2023. 1. 9.
자바 Java | JDK와 JRE의 차이: 자바 개발 도구와 실행 환경 ✅ 자바 프로그램을 실행시키기 위한 도구 자바 개발 도구 JDK와 자바 실행 환경 JRE는 모두 자바 프로그램을 실행시키기 위한 도구이다. 자바 언어의 컴파일과 실행을 가능하게 한다. 자바 API(자바 표준 라이브러리)를 포함하여 프로그래밍에 필요한 많은 기능을 제공한다. 자바 애플리케이션을 실행시키기 위해 필요한 자바 가상 머신 JVM을 포함한다. 자바 애플리케이션 개발을 위한 개발 도구들을 포함하고 있습니다. 자바 프로그램을 개발하고 실행시키기 위해서는 자바 개발 도구 JDK와 자바 실행 환경 JRE 중 적어도 하나가 필요하다. 자바 개발 도구 JDK는 자바 실행 환경 JRE를 포함한다. 자바 실행 환경 JRE는 자바 프로그램을 실행시키는 데 필요한 최소한의 도구들만 포함한다. 💡 자바 개발 도구 J.. 2023. 1. 9.
자바 Java | 플랫폼 독립성의 중요성과 대표적인 언어/기술들의 구현 방식 ✅ 플랫폼 독립성 어떠한 소프트웨어가 특정한 하드웨어 플랫폼에 종속되지 않고, 여러 다른 플랫폼에서 동일하게 작동할 수 있는 능력이다. 현재 대부분의 소프트웨어 제품들은 플랫폼 독립성을 고려하여 개발되고 있으며, 이는 소프트웨어 산업에서 중요한 경쟁 우위를 가지는 요소 중 하나이다. 소프트웨어의 이식성과 호환성을 보장하며, 기업과 소비자들에게 많은 혜택을 제공한다. 소프트웨어 개발자들은 코드를 다시 작성할 필요 없이 여러 플랫폼에서 동일한 소프트웨어를 배포할 수 있다. 개발 시간과 비용이 절감되고, 소비자들은 자신이 선호하는 플랫폼에서 소프트웨어를 사용할 수 있다. 💡 자바 Java 자바 가상 머신 JVM을 통해 플랫폼 독립성을 보장한다. 자바로 작성된 코드는 어떤 플랫폼에서든 실행될 수 있다. 💡 Py.. 2023. 1. 9.
자바 Java | 자바의 역사와 커피에서 영감 받은 이름 유래 ✅ 자바 Java 역사 플랫폼 독립적인 특성과 객체 지향 프로그래밍의 장점, 그리고 자바 가상 머신(Java Virtual Machine)을 통한 메모리 관리 등의 혁신적인 기술로 빠르게 인기를 얻었다. 1991년 썬 마이크로시스템즈(Sun Microsystems)의 제임스 고슬링(James Gosling) 등 개발자들은 가전제품의 셋톱박스를 위해 객체 지향 프로그래밍 언어인 오크(Oak)를 개발한다. 오크(Oak)이란 이름이 이미 상표권 등록되어 있어서 이름을 바꾸게 되었다. 1995년 인터넷이 빠르게 발전하면서 썬 마이크로시스템즈는 오크의 개발 방향을 변경하여 인터넷 환경에 적용할 수 있는 자바(Java)를 발표한다. 웹 브라우저에서 실행되는 애니메이션과 같은 것들을 위한 목적이었다. 2009년: 오.. 2023. 1. 8.
자바 Java | 프로그래밍 언어와 컴파일러: 소스 코드를 기계어로 변환하는 방법 ✅ 프로그래밍 언어 인간이 이해할 수 있는 형태의 명령어를 작성하고, 컴파일러 또는 인터프리터와 같은 도구를 사용하여 기계어로 변환하여 컴퓨터가 이해하고 실행할 수 있는 프로그램을 만드는 도구이다. 컴퓨터는 이진수로 이루어진 기계어를 이해하며, 이를 이용해 프로그램을 실행한다. C, C++, Python, JavaScript, Ruby 등 다양한 언어가 있다. 프로그래머가 복잡한 프로그램을 작성하고 관리할 수 있도록 다양한 기능과 문법을 제공한다. 💡 프로그래밍 언어 분류 프로그래밍 언어는 고급언어, 어셈블리어, 기계어로 크게 분류된다. 고급언어 사람이 이해하기 쉽고 추상화된 개념을 다룬다. 대표적으로 Java, C, Python, JavaScript 등이 있다. 컴파일러나 인터프리터와 같은 도구를 사용.. 2023. 1. 8.
자바 JAVA | 백준 9498번 시험 성적 | 조건문을 이용한 시험 성적 출력 프로그램 https://www.acmicpc.net/problem/9498 9498번: 시험 성적 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. www.acmicpc.net ✅ 문제 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. 시간 제한: 1 초 메모리 제한: 128 MB 💡 입력 첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 💡 출력 시험 성적을 출력한다. 💡 예제 입력 1 100 💡 예제 출력 1 A ✅ 해결 💡 .. 2022. 9. 28.
자바 JAVA | 백준 1330번 두 수 비교하기 | 조건문(if-else) 활용 https://www.acmicpc.net/problem/1330 1330번: 두 수 비교하기 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. www.acmicpc.net ✅ 문제 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. 시간 제한: 1 초 메모리 제한: 512 MB 💡 입력 첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어 있다. 💡 출력 첫째 줄에 다음 세 가지 중 하나를 출력한다. A가 B보다 큰 경우에는 '>'를 출력한다. A가 B보다 작은 경우에는 ' 2022. 9. 28.
자바 JAVA | 백준 25083번 새싹 | 문자열 출력 방법과 이스케이프 문자 활용 예제 https://www.acmicpc.net/problem/25083 25083번: 새싹 아래 예제와 같이 새싹을 출력하시오. www.acmicpc.net ✅ 문제 아래 예제와 같이 새싹을 출력하시오. 시간 제한: 1 초 메모리 제한: 1024 MB 💡 입력 입력은 없다. 💡 출력 새싹을 출력한다. 💡 예제 입력 1 없음. 💡 예제 출력 1 ,r'"7 r`-_ ,' ,/ \. ". L_r' `~\/ | | ✅ 해결 💡 해결 계획 주어진 출력 예제에 따라 새싹 모양을 문자열로 정의한다. 문자열을 줄 단위로 출력하여 새싹을 출력한다. 💡 코드 1 (성공) 시간 복잡도는 O(1)이다. 입력값에 따라 실행 시간에 영향을 받지 않는다. 출력 예제에 맞게 문자열을 정의하고, 문자열을 줄 단위로 출력하여 새싹을 출력한.. 2022. 9. 28.
자바 JAVA | 백준 10172번 개 | 이스케이프 문자 활용하여 문자열 출력하는 방법 https://www.acmicpc.net/problem/10172 2022. 9. 28.
자바 JAVA | 백준 10171번 고양이 | 이스케이프 문자 활용 https://www.acmicpc.net/problem/10171 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net ✅ 문제 아래 예제와 같이 고양이를 출력하시오. 시간 제한: 1 초 메모리 제한: 256 MB 💡 입력 없음. 💡 출력 고양이를 출력한다. 💡 예제 입력 1 없음. 💡 예제 출력 1 \ /\ ) ( ') ( / ) \(__)| ✅ 해결 💡 해결 계획 문제에서 주어진 그림을 참고하여, 고양이 모양을 문자열로 정의한다. 문자열을 줄 단위로 출력하여 고양이 모양을 출력한다. 💡 코드 1 (성공) 시간 복잡도는 O(1)이다. 출력하는 문자열이 하드코딩되어 있기 때문에 입력값에 따라 실행 시간에 영향을 받지 않는다. 이스케이프 문자를 이용해 특정 문자를 출력.. 2022. 9. 28.
자바 알고리즘 | IMOS 알고리즘을 활용한 구간 중첩 최대값 찾기 ✅ IMOS 알고리즘 시작점과 끝점이 주어진 구간을 처리하는 데 유용한 알고리즘이다. 각 지점에서의 변경 값을 저장하고 누적하여 계산함으로 가장 중첩되는 영역을 구할 수 있다. 쇼핑몰의 판매 기록을 분석하여 특정 기간 동안 가장 많이 판매된 상품의 수량을 구한다. 판매 기록을 날짜별로 분류하여 날짜마다 판매된 상품 수량을 저장한다. 7월 1일부터 7월 3일까지의 구간에서 가장 많이 판매된 상품의 수량을 구하려고 한다. 7월 1일부터 7월 3일까지의 판매량의 누적 합을 구하고 가장 큰 값을 찾으면 된다. 이처럼 구간 중첩 문제를 해결하는 데에 유용한 알고리즘이다. 다양한 문제를 효율적으로 해결할 수 있다. 💡 IMOS 알고리즘 시간 복잡도 입력 데이터의 개수 N과 구간의 개수 M에 선형적으로 비례한다. 전.. 2022. 9. 23.
자바 JAVA | 백준 11660번 구간 합 구하기 5 | 2차원 배열에서 구간 합 구하기 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net ✅ 문제 N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다. 예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자. 여기서 (2, 2)부터 (3, 4)까지 합을 구하면 3 + 4 + 5 + 4 + 5 + 6 = 27이고, (.. 2022. 9. 20.
자바 JAVA | 백준 2588번 곱셈 | 연산자를 활용한 세 자리 수 곱셈 계산 프로그램 https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net ✅ 문제 (세 자릿수) × (세 자릿수)는 다음과 같은 과정을 통하여 이루어진다. (1)과 (2) 위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6) 위치에 들어갈 값을 구하는 프로그램을 작성하시오. 시간 제한: 1 초 메모리 제한: 128 MB 💡 입력 첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세 자리 자연수가 주어진다. 💡 출력 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. 💡 예제.. 2022. 9. 20.
자바 JAVA | 백준 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰 | 배열(Array)의 개념과 사용 방법 https://www.acmicpc.net/problem/3003 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net ✅ 문제 동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다. 체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검은색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다. 체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다. 동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올.. 2022. 9. 20.
자바 JAVA | 백준 18108번 1998년생인 내가 태국에서는 2541년생?! | 불기 연도와 서기 연도 간의 변환 방법 https://www.acmicpc.net/problem/18108 18108번: 1998년생인 내가 태국에서는 2541년생?! ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국 www.acmicpc.net ✅ 문제 ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국은 불멸기원(佛滅紀元), 즉 석가모니가 열반한 해를 기준으로 연도를 세는 불기를 사용한다. 반면, 우리나라는 서기 연도.. 2022. 9. 20.
자바 JAVA | 백준 10926번 ??! | Scanner 클래스를 활용한 사용자 입력 처리 방법 https://www.acmicpc.net/problem/10926 10926번: ??! 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때 www.acmicpc.net ✅ 문제 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때, 놀람을 표현하는 프로그램을 작성하시오. 시간 제한: 1 초 메모리 제한: 256 MB 💡 입력 첫째 줄에 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어진다. 아이디는 알파벳 소문자.. 2022. 9. 20.
자바 알고리즘 | 코딩테스트에서 필수적인 시간 복잡도 개념과 활용 방법 최근 자바 공부를 다시 시작하면서 알고리즘 문제를 해결하려고 노력하고 있다. 그러나 여러 문제에서 런타임 에러가 발생하는데, 특히 중첩 for문을 사용하는 경우에 많이 발생한다. 이러한 문제를 해결하기 위해서는 시간 복잡도를 공부하고, 효율적인 알고리즘을 설계하는 방법을 배워야 한다. 시간 복잡도를 이해하면, 같은 문제를 더 효율적으로 해결할 수 있다. ✅ 시간 복잡도 알고리즘이 처리하는 입력 크기와 실행 시간 간의 상관관계를 나타낸다. 알고리즘이 입력 크기에 따라 처리하는 데 걸리는 시간의 증가율을 나타내는 지표이다. 입력 크기와 실행 시간 간의 상관관계를 분석하여 알고리즘의 성능을 평가할 수 있다. 이를 통해 더 효율적인 알고리즘을 설계하고, 불필요한 자원 낭비를 방지할 수 있다. 💡 시간 복잡도 조.. 2022. 9. 19.
자바 JAVA | 백준 11659번 구간 합 구하기 4 | 부분 합을 이용한 구간 합 구하기 알고리즘 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net ✅ 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 시간제한: 1초 메모리 제한: 256 MB 💡 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 💡 출력.. 2022. 9. 13.
반응형