분류 전체보기 21

시뮬레이션 & 구현 - 사다리타기

현수네 반에는 n명의 학생이 있습니다. 선생님은 n명의 학생이 모두 사다리타기를 한 다음 당첨 된 학생을 이 번주 학급회장으로 선출하려고 합니다.각 학생은 알파벳 대문자로 표시됩니다.만약 n=5 이고 아래와 같은 사다리라면 >위에 사다리는 세로 라인이 1부터 5까지로 표현는 5개의 세로줄과 3개의 가로줄을 가지고 있습 니다. 첫 번째 가로줄은 1번 세로줄과 2번 세로줄을 연결한 가로막대와 3번 세로줄과 4번 세로 줄을 연결한 가로막대 2개가 있는데 이를 표현하는 방법은 [1, 3]으로 표현합니다. 즉 가로막대 가 연결하고 있는 세로줄 중 왼쪽 세로줄 번호만 알려주는 형식입니다. 예를 들어 어떤 가로줄의 입력정보가 [1, 3, 5]로 표현된다면 이 가로줄에는 1번 세로줄과 2번 세로줄은 연결한 가로막대, ..

카테고리 없음 2024.11.16

해시 : 한 번 사용한 최초문자

문자열에서 한번만 사용한 문자를 찾으려고 합니다.매개변수 s에 문자열이 주어지면 한번만 사용한 문자 중 문자열에서 가장 먼저 나타난 문자의 인덱스 번호를 반환하는 프로그램을 작성하세요. 인덱스는 1부터 시작합니다. 한번만 사용한 문자가 없을 경우 -1를 반환하세요.  1. HashMap 생성 : HashMap2. hm.getOrDefault(i, 0) : 'i'라는 Key에 해당하는 value가 존재하면 가져오고, 존재하지 않으면 0을 default로 지정하여 사용3. hm.get(s.charAt(i)) s.charAt(i)의 value가 1인 값 +1import java.util.*;public class Solution { public int solution(String s){ int answer..

Algorithm 2024.11.16

컴파일러 & 인터프리터

컴파일러와 인터프리터는 프로그래밍 언어로 작성된 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 과정에 관여하는 프로그램.컴파일러- 전체 변환 : 소스 코드의 전체를 읽어 한번에 기계어로 변환함. 변환 과정을 거친 후, 생성된 기계어 코드를 실행함.- 속도 : 컴파일 과정 자체는 시간이 걸리지만, 변환된 코드는 직접 실행되므로 실행 시간은 빠름- C, C++, Go, Rust등의 언어가 컴파일러를 사용함- 코드를 수정했을 때 컴파일 과정이 필요함인터프리터 - 한 줄씩 변환 : 소스 코드를 한 줄씩 읽어가며 바로 기계어로 변환하고 실행- 속도 : 컴파일 단계가 없으므로 초기 시작은 빠르지만, 전체 코드 실행 시간은 컴파일러를 사용할 때 보다 느릴 수 있음. 코드를 실행할 때마다 변환 과정을 거치기 때문-..

카테고리 없음 2024.11.12

추상화?

추상화의 의미프로그래밍에서의 추상화는 복잡한 데이터, 구조, 시스템 등으로부터 핵심만을 가려내 덜 자세하게 만드는 것 또는 세부사항, 절차 등을 감추고 인터페이스 등을 만드는 것으로 복잡도를 낮추는 방법을 말함.데이터, 프로세스 추상화 두가지로 나뉨데이터 추상화어떠한 데이터들의 공통점을 모으고 차이점은 버림프로세스 추상화어떠한 내부 프로세스를 숨기는 것. 데이터베이스가 어떻게 데이터를 저장하는지는 모르지만 Inser, upsert등의 쿼리로 데이터를 저장할 수 있음. 출처 인프런 CS 지식의 정석

카테고리 없음 2024.11.12

오버로딩 & 오버라이딩

오버로딩(overloading)이름이 같아도 매개변수 개수, 타입, 순서를 다르게 해서 같은 이름으로도 여러개의 함수를 정의할 수 있는 것을 말함. 이는 프로그램의 유연성을 높이고 결과적으로 코드를 깔끔하게 하는 효과가 있으며 같은 클래서 내에서 사용됨.오버라이딩(overriding)상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의하는 것. 상속 관계 클래스에서 사용되며 static, final로 선언한 메서드는 오버라이딩이 불가능함. 출처 인프런 CS지식의 정석

카테고리 없음 2024.11.12

static?

클래스의 인스턴스가 아닌 클래스에 속하며 클래스의 변수, 메서드 등을 공유하는데 사용됨. 이를 통해 해당 클래스로 만들어지는 객체 사이에서 중복되는 메서드, 속성을 효율적으로 정의할 때 쓰이며 단순히 전역변수가 아니라 클래스 내의 static키워드로 선언하여 이 클래스의 객체들끼리 사용되는 메서드 또는 속성이라는 것을 나타내주는 명시성이라는 장점이 생기므로 쓰임.public class Person {             // 멤버변수(속성)             String name;             int IQ;             int str;             private static final String GUDOC = "큰돌의 터전";             // construct..

카테고리 없음 2024.11.12

클래스 & 객체 & 인스턴스

클래스객체Object를 만들어 내기 위한 틀이며 만들어 낼 객체의 속성과 메서드의 집합을 담아놓은 것객체클래스로부터 만들어지는 실체, 클래스로 선언된 변수인스턴스객체가 메모리에 할당이 된 상태이며 런타임에 구동되는 객체. 객체와 같은 의미로 쓰이기도 함.aws에서는 클라우드의 가상서버라는 뜻  public class Person {         // 멤버변수(속성)        String name;        int IQ;        int str;        // constructor        public Person(String name, int IQ, int str){                  this.name = name;                   this.IQ = IQ;..

Etc... 2024.11.12