# Remind

32개의 포스트
post-thumbnail

자바스크립트 리마인드 - 1

그동안 사용했던 자바스크립트를 기초부터 다시 리마인드를 통해 놓쳤던 부분이나 제대로 이해하지 못한 부분을 학습하기 위해 MDN 참고하여 작성하는 글입니다. 문법 >## 1. 기본 자바스크립트(JavaScript)는 문법의 대부분을 Java와 C, C++을 비롯한 다른 언어들의 영향을 받았다. 자바스크립트는 대소문자를 구변하고, 유니코드 문자셋을 사용하여 영어뿐만 아니라 한국어, 독일어등을 사용할 수 있다. 자바스크립트의 한 문장을 명령문(statement)이라고 하며, 명령문의 구분을 세미콜론(;)으로 한다. 한줄이 한 명령문이면 상관없지만, 한줄에 두 명령문이 있다면 구분해주어야한다. 자바스크립트는 왼쪽에서 오른쪽으로 한줄씩 해석한다. >## 2. 주석 주석의 사용법은 다른 언어와 비슷하다.

5일 전
·
0개의 댓글
·

[ baekjoon ] #10815 숫자 카드

백준 #10815 숫자 카드 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 입력 첫째 줄 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. -10,000,000 ≤ 숫자 카드에 적혀있는 수 ≤ 10,000,000이다. 숫자 카드는 중복되지 않는다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. -10,000,000 ≤ 가지고 있는지 찾아야할 수 ≤ 10,000,000이다. 출력 첫째 줄에 입력으로

2023년 6월 29일
·
0개의 댓글
·

[ baekjoon ] #2751 수 정렬하기 2

백준 #2751 수 정렬하기 2 문제 N개의 수가 주어졌을 때, 오름차순으로 정렬하는 프로그램 작성하기 ! 💡Idea N개 만큼 수를 입력 받아야하는데 어떻게 받을까? → python은 변수 선언, 동적할당 같은 개념이 없다. → list를 하나 만들고 N만큼 반복하며 append 하자 ! 출력을 어떻게 할까? → list에서 하나씩 출력하자. Code(PyPy3) > Code(sys 사용) > Feedback 처음에 python3으로 제출했더니 시간초과 발생. → 검색해보니 python3으로 시간초과가 발생할 경우 PyPy3으로 제출하면 될 수도 있다고 함 → 그래서 PyPy3으로 제출해보니 통과 ! 시간초과의 원인이 input() 함수인 것을 발견,, → input()함수의 경우 prompt message를 출력하고 개행

2023년 6월 26일
·
0개의 댓글
·

[ baekjoon ] #16918 봄버맨

백준 #16918 봄버맨 문제 요약 R×C 크기의 격자판, 각 칸은 비어있거나 폭탄이 들어있다. 폭탄이 있는 칸은 3초가 지난 후 폭발한다. → 폭탄이 있던 칸은 파괴되어 빈칸이 된다. → 인접한 네 칸도 함께 파괴된다. 폭탄이 폭발했을 때 인접한 칸에 폭탄이 있었다면 폭발 없이 파괴된다. 봄버맨의 행동 ① 가장 처음에 일부 칸에 폭탄을 설치한다. 모든 폭탄이 설치된 시간은 같다. ② 다음 1초 동안 아무것도 하지 않는다. ③ 다음 1초 동안 폭탄이 설치되어 있지 않은 모든 칸에 폭탄을 설치한다. (모두 동시에 설치했다고 가정) ④ 1초가 지난 후 3초 전에 설치된 폭탄이 모두 폭발한다. ⑤ ③, ④를 반복한다. 💡Idea(BFS) 폭탄의 유무를 어떻게 판단할까? → check 배열의 값으로 폭탄이 있는지 없는지 판단하자. 기존에 있던 폭탄과 폭

2023년 6월 14일
·
0개의 댓글
·

모의고사

프로그래머스 - 모의고사 문제 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사

2023년 6월 6일
·
0개의 댓글
·

귤 고르기

프로그래머스 - 귤 고르기 문제 요약 수확한 귤 중 k개를 골라 판매하려고 한다. 서로 다른 종류가 최소일 때 귤 종류의 수를 return 💡Idea 같은 종류의 귤 개수를 어떻게 세야할까? → vector 에 종류, 개수를 저장하게 되면 `탐색 불가능` → `kind(map)` 에 귤 종류, 개수 저장 ! 어떻게 k개로 줄일까? → 귤의 종류가 적은 것부터 하나씩 빼자 1) kind의 `value` 값으로 오름차순 정렬 2) `귤 개수 - k` 만큼 귤을 하나씩 빼기 >Source Code > Feedback map 을 value 기준으로 정렬하는 부분에서 헤맴. → vector로 옮겨서 정렬하는 방법 생각하기 ! Remind kind

2023년 6월 4일
·
0개의 댓글
·

오픈채팅방

프로그래머스 - 오픈채팅방 문제 요약 채팅방에 들어오면 `"[닉네임]님이 들어왔습니다."` 채팅방에서 나가면 `"[닉네임]님이 나갔습니다."` 채팅방에서 닉네임 변경하는 방법 ① 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. ② 채팅방에서 닉네임을 변경한다. 닉네임 변경 시 `기존의 메시지들의 닉네임도 전부 변경 !` record 설명 모든 유저는 `[유저 아이디]`로 구분 채팅방 입장 시 "Enter [유저 아이디] [닉네임]" 채팅방 퇴장 시 "Leave [유저 아이디] 닉네임 변경 시 "Change [유저 아이디] [닉네임]" 💡 Idea 채팅방 입/퇴장 기록을 어떻게 저장할까? 1) 채팅방 입/퇴장 종류, 유저 아이디, 닉네임 세가지를 다 저장하자 !

2023년 6월 3일
·
0개의 댓글
·

신규 아이디 추천

프로그래머스 - 신규 아이디 추천 문제 요약 [ 카카오 아이디 규칙 ] 3 ≤ 아이디 길이 ≤ 15 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 가능 마침표(.)는 처음과 끝에 사용 X, 연속 사용 X 신규 유저가 입력한 아이디가 new_id라면, 1단계) new_id의 모든 대문자 → 소문자 변경 2단계) 규칙에 어긋나는 문자 제거 3단계) 연속된 마침표를 하나로 ! 4단계) 처음과 끝에 있는 마침표 제거 5단계) new_id가 빈 문자열 → "a" 대입 6단계) `new_id길이 ≥ 16` 이면 처음부터 15자만 남김 (.으로 끝나면 .제거) 7단계) `new_id길이 ≤ 2` 이면 마지막 문자를 길이가 3이 될 때까지 반복 ! 💡Idea 모든 대문자를 소문자로 변경하면서 규

2023년 6월 1일
·
0개의 댓글
·
post-thumbnail

[Java]::Remind - Lambda Expression

Lambda Expression - 람다식 > * 람다식이란 "식별자없이 실행가능한 함수"이다. * > ** 함수지만, 따로 함수를 생성하지않고 코드 한 줄에 함수를 써서 그것을 호출하는 방식이다. 함수적 프로그래밍을 위해 자바 8부터 람다식(Lambda Expressions)을 지원하면서 코드의 문법이 간결해져 가독성 면에서 장점이 돋보이다.** 인터페이스 사용 인터페이스 사용방법 - 익명클래스 > 흔히 인터페이스는 클래스에서 상속받아 메서드를 오버라이드하며 사용된다. 또 클래스 생성없이 익명 클래스를 만들어서 사용 가능하다. > 익명클래스 예시 1 > 익명클래스 예시 2 인터페이스 사용방법 - 매개변수 > 인터페이스는 매개변수로도 참조가 되어 사용이 가능하다. > 매개변수 예시 인터페이스 사용방법 - 리턴타입 > 인터페이스를 리턴타입으로도 반환할 수 있다. > 리턴타입 예시 > ** 이렇게 인터페이스를 사용할 때, 여

2023년 5월 26일
·
0개의 댓글
·
post-thumbnail

[Java]::Remind - Annotation

Annotation - 어노테이션 > * 어노테이션은 실행문은 아니지만, 정보를 제공하도록 하는 표시이다. * 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공한다. 빌드 실행 혹은 배치 시 정보를 제공한다. 실행 시 특정 기능을 실행하도록 정보를 제공한다. 표준 어노테이션 @Override > 메소드를 오버라이드 했을 때 하는 표시이다. > Example : @Deprecated > 지금은 사용하고 있지만, 추후에 없어지거나 바뀔 내용에다가 표시하는 어노테이션이다. 어노테이션 선언 시 메소드 이름에 선이 그어진다. > Example : @SuppressWarning > ** 객체가 변수를 선언하고 사용안할 때, 객체를 생성하고 Serial번호를 생

2023년 5월 24일
·
0개의 댓글
·
post-thumbnail

[Java]::Remind - Enum

Enum - 열거형 > * 객체 중에서 내부 데이터가 정해져 있는 객체, 예를 들면 요일 처럼 월,화,수,목,금,토,일 이렇게 7개만 가지고 있는 객체를 열거형으로 선언해서 사용할 수 있다.* 선언 > public enum 열거타입 이름{ } 사용 열거형 메소드 > name() : enum의 값을 리턴함 toString() : name() 메소드와 동일함 ordinal() : enum 값의 위치값을 구함 compareTo() : enum 값의 상대적 위치를 구함 valueOf() : 인자로 지정된 enum 값을 리턴함 values() : enum의 모든 값들을 리턴함

2023년 5월 24일
·
0개의 댓글
·
post-thumbnail

[Java]::Remind - Generic

Generic - 제네릭 > ** 제네릭 타입을 사용하는 이유는 잘못된 타입선언으로 인한 문제를 컴파일 과정에서 예방할 수 있기 때문이다. 제네릭 타입은 컴파일 시에 미리 타입을 체크할수 있어서 미리 에러를 사전에 방지하고, 타입 제한이 가능하여 요소를 찾아올 때, 타입 변환을 할 필요가 없어 프로그램 성능을 향상시킬 수 있다.** Generic 선언 - 예시 Generic 조건 지정 > 어떤 한 특정 객체를 상속받는 객체들만 Generic 타입으로 표시할 때, Generic 타입 뒤에 extends를 붙여서 사용한다. 예시 Solid를 상속받는 객체만 Liquid를 상속받는 객체만 와일드 카드 > 제네릭 타입을 사용하는 객체를 변수로 받는 객체에서는 여러 타입으로 변수를 받기 때문에 한가지 타입으로만 선언할 수 없다. 그런 경우에는 와일드 카드, ?로 제네릭 타입을 지정해서 사용한다. 예시 멀티 타입 파라미터

2023년 5월 24일
·
0개의 댓글
·
post-thumbnail

[Java]::Remind - Thread

Thread - 스레드 > * 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위를 말하며, 세부적으로는 운영체제에 의해 관리되는 하나의 작업 혹은 태스크를 의미한다. 스레드와 태스크(혹은 작업)은 바꾸어 사용해도 무관합니다.* > > JVM에 의해 하나의 프로세스가 발생하고 main( ) 안의 실행문 들이 하나의 스레드이다. > main( ) 이외의 또 다른 스레드를 만들려면 Thread 클래스를 상속하거나 Runnable 인터페이스를 구현한다. > 다중 스레드 작업 시에는 각 스레드 끼리 정보를 주고받을 수 있어 처리 과정의 오류를 줄일 수 있다. > 프로세스끼리는 정보를 주고받을 수 없다. Thread 생성 > * 스레드를 생성할 때, 크게 두가지 방법이 있다. 첫번째는 Thread클래스를 상속받아 생성하는 방법과, Runnable 인터페이스를 상속받는 방법이 있다.* Thread 객체 상속 > 스레드 클래스를 상속

2023년 5월 18일
·
0개의 댓글
·
post-thumbnail

[Java]::Remind - 파일 입출력

File 객체 > **Java.io패키지에서 제공하는 File클래스는 파일 크기, 파일 속성, 파일 이름 등의 정보를 얻어내는 기능과 파일 생성 및 삭제 기능을 제공한다. 그리고 디렉토리를 생성하고 디렉토리에 존재하는 파일 리스트를 얻어내는 기능도 있다. 파일 또는 관련된 디렉토리를 지원하는 기능을 한다.** File - 메소드 > isDirectory() - 디렉터리인지 여부 판단 isFile() - 파일인지 여부 판단 delete() - 삭제 renameTo() - 이동 length() - 사이즈/크기 canRead() - 읽을 수 있는지 canWrite() - 쓸 수 있는지 canExecute() - 실행 할 수 있는지 canHidden() - 숨길 수 있는지 setReadable(true) - 속성 설정(read) setWritable(true) - 속성 설정(write) setExecutable(ture) - 속성

2023년 5월 17일
·
0개의 댓글
·
post-thumbnail

[Java]::Remind - Input/Output Stream

Input/Output Stream - 입출력 스트림 > **자바에서 데이터는 스트림(Stream)을 통해 입출력이 된다. 스트림은 단일 방향으로 연속적으로 흘러가는 것을 말하는데 물이 높은 곳에서 낮은곳으로 흐르듯이 데이터는 출발지에서 나와 도착지로 흘러간다는 개념이다.** > 프로그램이 출발지냐 또는 도착지냐에 따라서 스트림의 종류가 결정되는데, 프로그램이 데이터를 입력받을 때에는 입력(InputStream)이라고 부르고, 데이터를 출력할때는 출력(OutputStream)이라고 한다. > 입력스트림의 출발지는 키보드, 파일, 네트워크상의 프로그램이 될 수 있고, 출력 스트림의 도착지는 모니터, 파일, 네트워크상의 프로그램이 될수 있다. > **항상 프로그램을 기준으로 데이터가 들어오면 입력스트림이고 데이터가 나가면 출력스트림이다. 프로그램이 네트워크상의 다른 프로그램과 데이터를 교환을 하기 위해서는 양쪽 모두 입력 스트림과 출력스트림이 따로 필요하다. 스트림

2023년 5월 17일
·
0개의 댓글
·
post-thumbnail

[Java]::Remind - Exception

Exception - 예외 > ** 예외(Exception)란, 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류다. ** > 예외의 객체 구조 Throwable이란, 오류와 관련된 최상위 객체이다. 그 밑으로 Error와 Exception이 있고, Exception에는 여러가지 종류가 있다. 대표적으로 RuntimeException은 프로그램 실행과 관련된 오류이고, IOException은 입출력과 관련된 오류이다. Error(에러)와 Exception(예외)의 차이 > 에러(Error)란 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램에 이상이 생겼거나 JVM 실행에 문제가 생겼을 경우 발생하는것을 말한다. > 예외가 발생하면 프로그램이 종료가 된다는것은

2023년 5월 12일
·
0개의 댓글
·
post-thumbnail

[Java]::Remind - Collection (Set) - 3 -

Java Collection Framework > * Java에서 배열에 비효율적인 문제 중 하나는 크기가 고정적이라는 것이다. 배열의 크기는 생성될 때, 크기가 정해지고 정해진 크기 이상으로 데이터를 저장할 수 없기 때문에 문제가 발생합니다. 이를 해결하기 위해 자바에서는 객체와 데이터들을 효율적으로 관리할 수 있는 자료구조를 라이브러리로 제공하는데 이것이 Collection Framework이다.* (출처-https://coding-factory.tistory.com/550) Set Collection > **Set컬렉션은 선형구조이고 추가한 순서대로 저장 순서가 유지되는 List컬렉션과 달리, 저장 순서가 유지가 안된다. 순서 자체가 없으므로 인덱스로 관리를 하지않기 때문에 get(ind

2023년 5월 12일
·
0개의 댓글
·
post-thumbnail

[Java]::Remind - Collection (Map) - 2 -

Java Collection Framework > * Java에서 배열에 비효율적인 문제 중 하나는 크기가 고정적이라는 것이다. 배열의 크기는 생성될 때, 크기가 정해지고 정해진 크기 이상으로 데이터를 저장할 수 없기 때문에 문제가 발생합니다. 이를 해결하기 위해 자바에서는 객체와 데이터들을 효율적으로 관리할 수 있는 자료구조를 라이브러리로 제공하는데 이것이 Collection Framework이다.* (출처-https://coding-factory.tistory.com/550) Map Collection > ** Map 컬렉션은 key(키)와 value(값)으로 구성되어 있는 객체를 저장하는 자료구조이다. 키는 중복되지 않는 데이터로 저장할 수 있고, 값은 중복되어 저장할 수 있다. Map은

2023년 5월 12일
·
0개의 댓글
·
post-thumbnail

[Java]::Remind - Collection (List) - 1 -

Java Collection Framework > * Java에서 배열에 비효율적인 문제 중 하나는 크기가 고정적이라는 것이다. 배열의 크기는 생성될 때, 크기가 정해지고 정해진 크기 이상으로 데이터를 저장할 수 없기 때문에 문제가 발생합니다. 이를 해결하기 위해 자바에서는 객체와 데이터들을 효율적으로 관리할 수 있는 자료구조를 라이브러리로 제공하는데 이것이 Collection Framework이다.* (출처-https://coding-factory.tistory.com/550) List Colletion > List 컬렉션은 객체를 배열과 비슷하게 일렬로 늘어놓은 구조를 가지고 있으며, 인덱스를 사용하여 객체를 관리한다. 크기가 정해져 있는 배열과는 다르게 List는 객체를 저장할 때, 인

2023년 5월 10일
·
0개의 댓글
·
post-thumbnail

[Java]::Remind - Inner Class

내부 클래스 - Inner Class > 한 클래스 내에 멤버로서 변수, 메소드, 생성자와 같이 클래스도 정의될 수 있다. 내부 클래스를 갖고 있는 클래스는 외부 클래스로 불리고, 주로 외부클래스에서만 사용된다. > 파일명 표시는 OuterClass.class 와 OuterClass$InnerClass.class 로 표시한다. Example code Example(LinkedList) 내부클래스의 종류 > Instance Class Static Class Local Class Instance Class > Instance Class는 static 없이 선언된 내부 클래스이고, 외부 클래스를 생성한 후 내부클래스를 생성해야 사용할 수 있다. Example 선언문 Static Class > Static Class는 static으로 선언된 내부 클래스이며 외부 클래스 생성없이 외부클래스명.내부

2023년 5월 4일
·
0개의 댓글
·