Java

    [Java/프로그래머스] 나누어 떨어지는 숫자 배열

    문제 풀이 (1) 문제 분석하기 arr의 길이는 정해져 있지 않으므로 배열 대신 Arraylist 사용 // 선언 List list = new ArrayList(); // add 메서드로 요소 추가 list.add(element) // list의 길이 list.size() // 리스트 오름차순으로 정렬 Collections.sort(list); // index에 접근 list.get(i) // String 타입의 List를 배열로 변환할 때 // int 형과 같은 primitive 타입 X stringList.toArray(new String[0]) return 타입이 int 타입의 배열이기 때문에 다시 배열로 변환하여 출력 (2) 슈도코드 작성하기 int타입 Arraylist 선언 for(입력 받은 배..

    [Java/프로그래머스] 2016년

    문제 풀이 (1) 문제 분석하기 각 요일을 배열로 선언 전체 월의 마지막일을 배열로 선언(1일은 금요일이므로 index 1이 금요일이 될 수 있게) 입력받은 날짜까지의 총 일수를 계산하고 7로 나눈 나머지로 요일 배열에 index로 접근 (2) 슈도코드 작성하기 요일 배열 선언 전체 월의 마지막일 배열 선언 for(입력 받은 월 - 1 만큼) { 전체 월의 마지막 일 배열 돌면서 총일수 구하기 } 총일수에 b를 더하고 7로 나눈 값을 int형 변수에 담기 int형 변수로 요일 배열에 index로 접근하여 출력 (3) 코드 구현하기 package algorithm.test01; public class YearOf2016 { public static void main(String[] args) { // 요일..

    [Java] 정수 나눗셈 연산, 증감 연산자, while문과 조건식

    정수 나눗셈 연산 (혼자 공부하는 자바 p.80) 다음 코드를 실행하면 출력 결과로 5를 기대했는데 4가 출력되었다. 어디에서 잘못 작성된 것일까? int var1 = 5; int var2 = 2; double var3 = var1 / var2; int var4 = (int)(var3 * var2); System.out.println(var4); // 4 3번 라인의 결과값부터 잘못 되었다고 할 수 있다. 이유는 자바에서 정수 연산의 결과는 정수이기 때문이다. 디버깅 모드로 라인 하나하나를 살펴보자. 7번 라인에서 var1 / var2의 연산 결과는 2.5가 아니라 2가 되고, 2를 double 타입으로 변수 var3에 저장하므로 2.0이 된다. 8번 라인에서 var3 * var2의 연산 결과는 4.0이..

    [TIL] Java 열거 타입(Enum)

    ✍ Today I Learned 05 참조타입 05-3 열거 타입 열거 타입이란? 한정된 값인 열거 상수(enumeration constant)중에서 하나의 상수를 저장하는 타입 ex) 요일에 대한 데이터(월, 화, 수, 목, 금), 계절에 대한 데이터(봄, 여름, 가을, 겨울) 열거 타입 선언 먼저 열거 타입 이름을 정하고, 해당 이름으로 소스파일(.java)을 생성해야 한다. 이름은 관례적으로 첫 글자를 대문자로, 나머지는 소문자로 한다. ex) Week.java / MemberGrade.java / ProductKind.java public enum 키워드로 선언한다. 열거 타입의 값으로 사용 되는 열거 상수는 관례적으로 모두 대문자로 작성한다. 열거 상수가 여러 단어일 땐 밑줄(_)로 연결한다. ..

    [TIL] Java 참조 타입, 메모리 사용 영역, String, 배열

    ✍ Today I Learned 오늘의 고비는 메모리 사용 영역과 다차원 배열이었는데, 글이 이해가 안 가서 그림을 찾아보고, 그림에 궁금한 부분이 있어서 동영상을 찾아보고 하다 보니 어느 정도 틀은 잡힌 것 같다. 안다고 생각했지만 사실 그건 아는 게 아니었다. 그 생각 자체가 오만 아닐까? 깊게 파고들수록 어려운 것 같다. 근데 너무 재밌어..! 05 참조타입 05-1 참조 타입과 참조 변수 기본 타입과 참조 타입 기본 타입(primitive type): 정수, 실수, 문자, 논리 리터럴을 저장하는 타입 참조 타입(reference type): 배열, 열거, 클래스, 인터페이스를 말하며, 객체(object)의 번지를 참조하는 타입 기본 타입 변수와 참조 타입 변수의 차이점은? 기본 타입 변수는 실제 ..

    [TIL] Java 조건문, 반복문, break, continue

    ✍ Today I Learned 예제 문제를 풀어보면서 제어문은 하나의 답이 아닌 여러 방향이 있다는 걸 또 한번 깨달았다. 항상 효율적인 방향이 무엇인지 고민하고 코드를 구현하자! 04 조건문과 반복문 04-1 조건문: if문, switch문 조건문의 종류 if문 조건식의 결과가 true, false이냐에 따라 실행문 결정 주로 else 블록과 함께 사용 switch문 변수의 값에 따라 실행문 결정 default는 생략 가능 break가 없다면 다음 case 연달아 실행 switch 연산은 char 타입, String 타입도 가능하다 중괄호 {} 블록 여러 개의 실행문을 하나로 묶기 위해 중괄호 {} 사용 조건식이 true가 될 때 실행해야 할 문장이 하나밖에 없다면 생략 가능 그러나 코드의 가독성을 ..

    [TIL] Java 연산자의 종류, 우선순위, 타입 변환

    ✍ Today I Learned 버벅거렸던 첫날에 비해 시간이 많이 단축되었다. 익숙해지는 중! 연산을 진행하면서 타입 변환이 되는 부분을 꼼꼼하게 숙지해보자. 03 연산자 03-1 연산자와 연산식 시작하기 전에 연산자(operator): 연산에 사용되는 표시나 기호 피연산자(operand): 연산자와 함께 연산되는 데이터 연산식(expression): 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것 연산식은 반드시 하나의 값을 산출하며, 값 대신에 연산식을 사용할 수 있다. 연산의 방향과 우선순위 단항, 이항, 삼항 연산자 순으로 우선순위를 가진다. 산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가진다. 단항, 부호, 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽이다.(→) 복잡한..

    [TIL] Java 개발 환경 구축, 변수와 타입

    ✍ Today I Learned 항해99 시작! 💪 99일간의 여정 중, 첫 주는 pre-onboarding 기간으로 주특기가 될 언어의 문법을 팀원들과 공부한다. 기초적인 내용이지만, 그동안 알 것 같은 느낌만 있고 실제로 설명하긴 어려웠던 개념이나 정의를 다시 곱씹어 보려 한다! 내가 헷갈렸던 내용, 다시 보면 좋을 내용 위주로 정리해 보았다😉 01 자바 시작하기 01-1 프로그래밍 언어와 자바 시작하기 전에 기계어는 사람의 언어와 다르기 때문에 다리 역할의 프로그래밍 언어 필요 프로그래밍 언어로 작성한 파일 == 소스파일 소스파일은 컴퓨터가 바로 이해할 수 없기 때문에 컴파일 과정을 통해 기계어 파일로 번역한 후 컴퓨터에서 사용 자바의 특징 모든 운영체제에서 실행 가능 ex) 윈도우에서 개발된 프로..