목록java (39)
개발저장소
Java는 기본적으로 위에서 아래로 실행하는 흐름을 가지고 있다. 이 흐름을 제어하는 것이 바로 제어문이다. 제어문은 조건문과 반복문이 존재한다. 조건문: if문, switch문 반복문: for문, while문, do-while문 1. if문 if문은 조건식의 결과에 따라 블록 실행 여부가 결정된다. if (조건식) { 실행문; 실행문; // 조건식이 true일 때 실행된다. } else 블록과 함께 사용하면 조건식이 false가 되는 경우도 고려할 수 있다. if (조건식) { // 조건식이 true일 경우 실행 } else { // 조건식이 false일 경우 실행 } 조건식이 여러 개인 if문도 만들 수 있다. else if를 사용해 다양한 조건을 만든다. 단, if문은 단 한 개만 실행된다. 조건식..
연산자(Operator)연산자란, 하나 이상의 피연산자를 취하여 연산을 수행하는 기호이다. 연산의 결과로 새로운 값을 생성한다.Java는 다음과 같은 연산자를 제공한다.부호/증감 연산자산술 연산자비교 연산자논리 연산자비트 연산자대입 연산자삼항 연산자 1. 부호/증감 연산자부호 연산자는 변수의 부호를 유지하거나 변경한다.연산식설명+피연산자피연산자의 부호 유지-피연산자피연산자의 부호 변경 + 연산자는 잘 사용되지 않고, - 연산자는 변수값의 부호를 변경할 때 사용된다. 부호를 변경할 때, 타입에 유의해야 한다. 예를 들어, byte 타입의 변수를 - 연산한다면 int 타입 변수에 대입해야 한다. 증감 연산자는 변수의 값을 1 증가시키거나 감소시키는 연산자이다.연산식설명++피연산자피연산자의 값을 1 증가/감소..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 게임 캐릭터에게 상하좌우로 한 칸씩 움직이는 명령을 내린다. 명령어는 순서대로 UDLF이다. 게임 캐릭터는 좌표평면 (0,0)에 위치하고, 좌표는 5X5 크기이다. 게임 캐릭터가 지나간 길 중 캐릭터가 처음 걸어본 길의 길이를 구한다. 움직인 총 이동거리에서 한번 가본 길을 지날 때는 이동거리에 포함시키지 않는다는 뜻이다. 또한 좌표평명 밖으로 이동하는 명령어가 입력된 경우, 그 명령은..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이게임의 스테이지 별로 실패율을 구해, 실패율이 높은 스테이지부터 내림차순으로 스테이지 번호가 담긴 배열을 구해야 한다.실패율이란, '스테이지에 도달한 플레이어 수'에서 '스테이지를 클리어하지 못한 플레이어 수'를 나눈 값이다.전체 스테이지 개수 N과 현재 사용자들이 멈춰있는 스테이지의 번호가 담긴 배열 stages가 주어진다.stages의 1번 인덱스에는 1번 사용자가 멈춰있는 스테이지 번호..

1. 변수 (Variable)변수는 하나의 값을 저장할 수 있는 메모리 주소에 붙여진 이름이다. 이름처럼 가변적으로 값을 담는 저장 공간이다. 자바의 변수는 한 가지 타입만 저장할 수 있다. 그리고 변수를 사용하기 위해서는 변수 선언이 필요하다.변수 선언은 변수에 저장될 데이터 타입과 변수의 이름을 정하는 것이다. int age;double value;타입 이름 변수가 선언되었다면 대입 연산자(=)를 사용해 값을 저장할 수 있다. 오른쪽의 값을 왼쪽 변수에 대입한다.변수에 최초로 값을 대입하는 것을 초기화라고 하고, 이때 값을 초기값이라고 한다. 초기화는 선언과 동시에 가능하다. 변수는 초기화될 때 메모리에 할당되고, 값이 저장된다. 즉, 변수를 사용하기 위해서는 선언 후 꼭 초기화가 필요하다. 2..

문제 https://www.acmicpc.net/problem/1377 1377번: 버블 소트 첫째 줄에 N이 주어진다. N은 500,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 A[1]부터 A[N]까지 하나씩 주어진다. A에 들어있는 수는 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 풀이 문제의 코드 버블 정렬을 C++로 구현한 알고리즘이다. 버블 정렬에서 swap이 한 번도 일어나지 않은 루프의 위치를 알아내는 코드이다. 버블 정렬에서 swap이 일어나지 않은 루프가 존재한다는 것은 정렬이 끝났다는 뜻이다. 그러므로 루프를 알아낸 즉시 반복문을 종료하는 것이 좋다. 정렬해야 하는 배열의 크기는 최대 500,000인 자연수이고, 요소의 크기는 최대..
문제https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0www.acmicpc.net 풀이0이 아닌 정수 x를 배열에 넣는다.배열에서 절댓값이 가장 작은 값을 출력하고 제거한다.절댓값이 가장 작은 값이 여러 개라면, 그중에 가장 작은 수를 출력하고 제거한다.0이 아닌 수가 주어지면 배열에 입력하고, 0이 주어진다면 위 규칙에 맞게 수를 출력하면 된다.연산의 개수는 1보다 크고 100,000보다 작다.입력되는 정수 x는 -2^31보다 크고 2^31보다 작다.출력..
문제 https://www.acmicpc.net/problem/2023 2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 풀이 N자리 숫자 중 왼쪽부터 1자리, 2자리, 3자리, ... N자리까지 모든 수가 소수가 되는 숫자를 모두 출력한다. ex) 7331 => 7, 73, 733, 7331 모두 소수이다. N은 1보다 크고 8보다 작다. 출력되는 소수는 오름차순으로 정렬한다. 1자리씩 점점 숫자를 늘려가며 소수인 경우만 가지를 뻗는 백트래킹 문제이다. 1자리는 2, 3, 5, 7만 가능하기 때문에..
1. Java Java는 썬 마이크로시스템즈에서 개발한 객체 지향적인 프로그래밍 언어이다. 특징 JVM(Java Virtual Machine) 위에서 동작하기 때문에 운영체제와 상관없이 동작한다. 객체 지향 프로그래밍에 적합한 언어이다. (Object Oriented Programming, OOP) Garbage Collector가 메모리를 자동으로 관리한다. 2. 객체 지향 프로그래밍이란? 어떤 제품을 만들 때 부품을 만들고 이를 조립해서 완제품을 만든다. 마찬가지로 소프트웨어를 개발할 때도 객체를 먼저 만들고 이를 조립해서 프로그램을 만드는 기법을 객체 지향 프로그래밍 Object Oriented Programming, OOP라고 한다. 객체 (Object) 객체는 물리적으로 존재하거나 개념적인 것 ..
문제 https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 풀이 크기가 N인 수열 A가 있을 때, 각 원소 Ai에 대하여 Ai보다 오른쪽에 있으면서 큰 수 중에서 가장 왼쪽에 있는 수를 오큰수라고 한다. 수열 A가 있을 때, 각 원소들의 오큰수를 구해야 한다. 오큰수가 없다면 -1을 출력한다. 수열 A의 길이와 각 원소의 크기는 둘 다 1 이상 1,000,000 이하이다. 즉, 다중 for문을 사용한다면 무조건 시간 초과가 일어난다. 스택의 원리를 이해하고 이..