목록전체 글 (191)
개발자 도전기
객체 지향 프로그래밍 부품들을 하나씩 조립해서 완성품을 만들듯 부품에 해당하는 객체들을 먼저 만들고, 이 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍이라 한다 1. 객체란? 객체란 물리적으로 존재하거나 개념적인 것 중에서 다른 것과 식별 가능한 것을 말한다. 물리적인 자동차, 사람, 자전거 등과 개념적인 학과, 강의, 주문 등도 모두 객체가 될 수 있다. 객체는 속성과 동작으로 구분된다, 사람은 이름, 나이 등의 속성과 웃다, 걷다 등의 동작이 있다. 속성은 필드, 동작은 메소드이다 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링이라고 한다. 2. 객체의 상호작용 사람이 컴퓨터를 이용하고, 컴퓨터는 출력 결과를 사람에게 리턴하는 상호작용을 하듯이 객체 지..

CS 스터디를 지난 주부터 시작했는데, 오늘 이번주 스터디도 완료하면서 2주차가 되었다. 매주 각자 주제를 정해서 발표하는 형식인데, 나는 이번주에 REST api에 대해서 조사했다. CRUD 방식이나 api에 대한 개념은 막연하게 알고 있었지만 이번에 발표를 준비하면서 더욱 잘 이해하게 되었다. 또 오늘 스터디원분이 공유해주신 문제 중에 모르는 개념이 있어 정리해본다 경우의 수를 구하는 방법에는 조합과 순열이 있다. 조합(nCr)은 n개 중 r개를 뽑아서 순서를 고려하지 않고 선택하는 방법의 수이고 순열(nPr)은 n개 중 r개를 뽑아서 순서 있게 나열하는 경우의 수이다, 위 문제의 머쓱이가 나누어 줄 구슬은 순서를 고려하지 않아도 되므로 조합에 해당한다. 특이점은 nCr 과 nCn-r의 값은 같다는 ..
프로그래머스 문제풀이에 도움이 되는 형변환 방법들을 모아봤습니다. char to int Character.forDigit(int, radix) radix : 진수 Character.getNumbericValue() char c = '1'; int n = Character.getNumericValue(c); System.out.println(n); // 결과: 1 int to char (char) int 타입캐스팅 활용 Character.forDigit(int, radix) String to Int Integer.parseInt() String str = "123"; int value = Integer.parseInt(str); System.out.println(value); // 123 Int to St..
문자열 비교 자바의 문자열은 String 객체에 저장되며 변수에는 객체의 번지가 대입된다. 문자열 리터럴이 동일한 경우에는 String 객체를 공유한다. new 연산자로 new String 객체를 생성했다면 새로 생성된 문자열은 기존 String 객체와 변수의 번지를 공유하지 않는다. String str1 = "abc"; String str2 = "abc"; new String str3 = "abc"; str1 == str2; // true str2 == str3; // false 동일한 String 객체든 다른 String 객체든 상관없이 내부 문자열만을 비교할 경우에는 String 객체의 equals() 메소드를 사용한다. boolean result = str1.equals(str2); 문자 추출 c..

오늘의 문제 class Solution { public int solution(int n) { int result = 0; loop: for(int i = 1; i

다차원 배열이란 배열 속에 또 다른 배열이 들어있는 것을 말한다. 배열 변수는 1차원 배열의 참조값을 가지고, 1차원 배열의 값은 2차원 배열의 참조값을 가진다. 다음과 같이 선언하고 접근할 수 있다 int[][] arr = { { 80, 90, 60} { 89, 86 } } int[][] arr1 = new int[3][2]; // 3행 2열 // arr1의 원소의 개수는 3개, 그 타입은 int[] // arr1[0] 각 원소의 원소의 갯수는 2개, 그 타입은 int[] // 2차원 배열의 길이가 다르게 설정 arr1[0] = new int[3]; // 값 대입 arr[1][2] = 5; // Arrays.toString()을 사용하면 배열을 문자열로 확인할 수 있다 System.out.println..

오늘 하루종일 고생한 문제의 풀이를 올려본다...! class Solution { public int[] solution(int[] numbers, String direction) { int m = 0; if(direction.equals("left")){ for(int i = 0 ; i =0; i--){ if(i != 0){ m = numbers[i]; numbers[i] = numbers[i-1]; numbers[i-1] = m; } else{ break; } } } return numbers; } } 나중에 다른 분들 풀이를 보니 대부분 새로운 배열을 만들어서 하셨던데... 나는 하나씩 옆에 있는 요소와 값을 바꿔가는 식으로 풀었다. TIL https://abc-datatype.tistory.com..
배열은 연속된 값을 인덱스에 따라 저장한 자료구조이다. 자바의 배열은 다음과 같은 특징을 가지고 있다. - 배열은 같은 타입의 값만 저장할 수 있다 - 배열의 길이는 늘리거나 줄일 수 없다 // 배열 : 같은 타입의 값을 여러개 갖는 자료형 // 원소타입명[] // int 타입의 원소(element, item) 들을 갖는 배열 int[] arr; // double 타입의 원소들을 갖는 배열 double[] brr; // String 타입의 원소들을 갖는 배열 String[] crr; // 실제 int 배열 객체를 만들고 변수에 할당 arr = new int[]{5, 6, 7}; 배열 역시 Null 값을 가질 수 있고 Null 값을 변수로 가진 배열을 사용하려고 하면 예외가 발생한다. 배열에는 다음과 같이..

자바에서 데이터 타입은 기본 타입과 참조 타입으로 나뉜다. 기본 타입으로 선언된 변수는 값 자체를 저장하고 있지만 참조 타입으로 선언된 변수는 객체가 생성된 메모리 번지를 저장한다. 참조 타입으로는 배열, 열거, 클래스, 인터페이스가 있다. 변수들은 모두 스택이라는 메모리 영역에 생성되는데 참조 타입의 경우 힙 메모리 영역의 참조 타입 번지를 저장한다. 참조 번지의 값을 알고 싶으면 System.identityHashcode()를 사용하면 된다 // new : 메모리 공간 확보 // 연산결과 : 확보된 메모리 공간 위치(주소, hashCode) int[] arr = new int[]{2, 3}; // arr가 가진 실제 값을 알고 싶을 때 // System.identityHashCode 메소드 사용 in..