반응형

분류 전체보기 269

[JS] 알고리즘 기초 정복 3-4번_가장 짧은 문자거리

문제 3-4번 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출 력하는 프로그램을 작성하세요. 🍄 입력설명 첫 번째 줄에 문자열 s와 문자 t가 주어진다. 문자열과 문자는 소문자로만 주어집니다. 문자열의 길이는 100을 넘지 않는다. 🍄 출력설명 첫 번째 줄에 각 문자열 s의 각 문자가 문자 t와 떨어진 거리를 순서대로 출력한다. 🍄 입력예제 1 teachermode e 🍄 출력예제 1 1 0 1 2 1 0 1 2 2 1 0 정답 코드 - 문제를 먼저 잘 이해한다. t로 주어진 값(예제에서는 e)는 문자열 좌, 우를 기준으로 몇번째에 있는지 찾고, 좌/우 중에 최소값을 배열에 넣어서 출력하는 문제이다. 예를들면 teachermode 의 4번쨰 인덱스에 있는 ..

알고리즘 2021.07.15

[JS] 알고리즘 기초 정복 3-3번_숫자만 추출

문제 3-3번 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다. 만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205 이 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. 🍄 입력설명 첫 줄에 숫자가 섞인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다. 🍄 출력설명 첫 줄에 자연수를 출력합니다. 🍄 입력예제 1 g0en2T0s8eSoft 🍄 출력예제 1 208 정답 코드 1) 정규식 이용 /[^0-9]/g 는 숫자 0~9가 아닌 것들 /^0/ -> 0인 것 function solution(s) { let answer; let n = s.replace(/[^0-..

알고리즘 2021.07.15

[JS] 알고리즘 기초 정복 3-2번_유효한 팰린드롬

문제 3-2번 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 합니다. 문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성하세요. 단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다. 알파벳 이외의 문자들의 무시합니다. 🍄 입력설명 첫 줄에 정수 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다. 🍄 출력설명 첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO로 출력합니다. 🍄 입력예제 1 found7, time: study; Yduts; emit, 7Dnuof 🍄 출력예제 1 YES 정답 코드 정규식 표현 이용 /[^a-z]/g 는 알파벳 소문자로 시작하지 않는 모든 문자를 전역에서 찾아서, (정규..

알고리즘 2021.07.15

[JS] 알고리즘 기초 정복 3-1번_회문 문자열

문제 3-1번 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다. 문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력 하는 프로그램을 작성하세요. 단 회문을 검사할 때 대소문자를 구분하지 않습니다. 🍄 입력설명 첫 줄에 정수 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다. 🍄 출력설명 첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다. 🍄 입력예제 1 gooG 🍄 출력예제 1 YES 정답 코드 1) for문 탐색 function solution(s) { let answer = "YES"; s = s.toLowerCase(); let n = s.length; //배열의 반만 돌면 되니까, 길이의 반만 fo..

알고리즘 2021.07.15

[TIL] 210715 오늘 공부는 자바스크립트 클래스 / 이벤트 버블링

코어 자바스크립트의 마지막 챕터 클래스는... 왜 ES6에서 클래스 문법이 도입됬는지 뼈저리게 느낄 수 있었던 챕터였다. ES5에서 프로토타입으로 상속을 구현하는 것 자체가 너무 복잡하고... (주륵) ES5에서 클래스를 정의하고 상속하는 방법 중에 Object.create() 라는 메소드가 있다. 상속하고자 하는 프로토타입 객체를 매개변수로 넣고, 상속받는 하위 클래스를 만들어내는 장점이 있지만, 하위 클래스의 프로토타입 생성자가 만들어지지 않는 단점이 있다. 따라서, constructor가 해당 하위클래스를 바라보게 하려면, 아래처럼 코드를 추가해주면 된다. 하위클래스.prototype= Object.create(상위클래스.prototype); 하위클래스.prototype.constructor = 하..

개발일지/TIL 2021.07.15

[JavaScript] 스터디 11일차_ 클래스(2) 상속(ES6)

1.3.2 클래스가 구체적인 데이터를 지니지 않게 하는 방법 - 클래스(prototype)가 구체적인 데이터를 지니지 않게 하는 방법 => 프로퍼티를 일일이 지우고 더는 새로운 프로퍼티를 추가할 수 없게 한다. delete Square.prototype.width; delete Square.prototype.height; Object.freeze(Square.prototype); 왼쪽에서 Square의 prototype은 height와 width가 있지만, 오른쪽에서 width와 height가 삭제되었다. ✨Object.freeze() - 객체를 동결한다. 동결된 객체는 더 이상 변경될 수 없다. 즉 동결된 객체는 새로운 속성을 추가하거나 존재하는 속성을 제거하는 것을 방지하며, 존재하는 속성의 값이 변..

[리액트] HOC 고차 컴포넌트

1. 고차 컴포넌트란? (Higher-Order Components) 고차 컴포넌트는 컴포넌트를 취하여 새로운 컴포넌트를 반환하는 함수입니다. 즉 리액트 컴포넌트를 인자로 받아서 새로운 리액트 컴포넌트를 리턴하는 함수 (●'◡'●) 컴포넌트 로직을 재사용하기 위한 아주 고오급 리액트 기술입니다 const HOC = ReactComponent => EnhancedReactComponent; 여기에서 EnhancedReactComponent는 ReactComponent의 props를 변경 한다거나, ReactComponent에 새로운 props를 추가하여 전달한다거나 아예 새로운 컴포넌트를 return 할 수 있다. 2. 네이밍 팁 Container HOC를 제외하고, 보통 HOC를 통해 새로운 prop을 ..

[JS] 알고리즘 기초 정복 2-7번 - 봉우리 🌟

문제 2-7번 지도 정보가 N*N 격자판에 주어집니다. 각 격자에는 그 지역의 높이가 쓰여있습니다. 각 격자 판의 숫자 중 자신의 상하좌우 숫자보다 큰 숫자는 봉우리 지역입니다. 봉우리 지역이 몇 개 있는 지 알아내는 프로그램을 작성하세요. 격자의 가장자리는 0으로 초기화 되었다고 가정한다. 만약 N=5 이고, 격자판의 숫자가 다음과 같다면 봉우리의 개수는 10개입니다. 🍄 입력설명 첫 줄에 자연수 N이 주어진다.(1= 0 && ny = arr[i][j]) { flag = 0; break; // 하나라도 커버리면 봉우리가 아니니 더 탐색할 필요 없어서 break 종료 } } if (flag) answer++; //flag가 1이라면 = true 라면 answer(봉우리..

알고리즘 2021.07.13