본문 바로가기
728x90

전체 글279

[PG/Python] 수식 최대화 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 📌 문제 접근 방법 후위표기법으로 스택을 사용해서 계산해야겠다는 생각은 금방 했지만, 우선순위를 표시하는 방법과 후위표기법으로 변환하는 과정을 구현하는데 고민을 오래 했다. 우선순위는 permutations를 사용해서 순열 리스트로 만들어줬다. (인덱스를 활용해서 우선순위를 비교할 것이다) 다음으로 expression 문자열을 순회하면서 숫자라면 nu.. 2021. 11. 14.
[PG/Python] 전력망을 둘로 나누기 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 📌 문제 접근 방법 인접리스트를 활용해서 연결된 전선 정보를 입력해준다. wires를 한 번 더 반복문을 돌리면서 전선들 중 하나를 끊는다. 이 때 끊긴 두 송전탑을 기준으로 전력망이 가진 송전탑의 개수를 bfs를 활용해서 구해준다. 두 전력망의 송전탑 수와 현재의 answer에 저장된 값을 비교하여 더 작은 값으로 answer 값을 갱신해준다. 끊긴 두.. 2021. 11. 14.
[JS] AJAX, Concurrency model, Promise, Axios AJAX (Asynchronous JavaScript And XML; 비동기식 JavaScript와 XML) 서버와 통신하기 위해 XMLHttpRequest 객체 활용 서버와 상호작용하기 위해 사용되며 전체 페이지의 새로고침 없이 데이터 받아올 수 있음 XML뿐만 아니라 모든 종류의 데이터 받아올 수 있음 JSON, XML, HTML, 텍스트 형식 등을 포함한 다양한 포맷 주고 받을 수 있음 페이지 전체를 reload(새로고침) 하지 않고서도 수행되는 비동기성 사용자의 event가 있으면 전체 페이지가 아닌 일부분만을 업데이트 페이지 새로고침 없이 서버에 요청 → 서버로부터 데이터받고 작업 수행 동기식 순차적, 직렬적 Task 수행 요청 보낸 후 응답 받아야만 다음 동작 이루어짐 (blocking) 왜 .. 2021. 11. 14.
[JS] 배열 관련 메서드 배열 키와 속성들을 담고 있는 참조 타입 객체 순서 보장 주로 대괄호[] 이용하여 생성, 0을 포함한 양의 정수 인덱스로 특정 값에 접근 배열의 길이는 array.length 형태로 접근 배열의 마지막 원소는 array.length - 1 로 접근 (-1로 접근 불가) 배열 관련 메서드 reverse: 원본 배열의 요소들의 순서를 반대로 정렬 push: 배열의 가장 뒤에 요소 추가 pop: 배열의 가장 뒤에 요소 제거 unshift: 배열의 가장 앞에 요소 추가 shift: 배열의 가장 앞에 요소 제거 includes: 배열에 특정 값이 존재하는지 판별 후 참/거짓 반환 indexOf: 배열에 특정 값이 존재하는지 판별 후 인덱스 반환 (요소 없을 경우 -1 반환) join: 배열의 모든 요소를 구분자를.. 2021. 11. 12.
[JS] 함수 함수 참조 타입 중 하나 function 타입 함수 정의하는 방법: 함수 선언식, 함수 표현식 JavaScript의 함수는 일급 객체(First-class citizen)에 해당 다른 객체들에 적용할 수 있는 연산을 모두 지원하는 객체(함수) 변수에 할당 가능 함수의 매개변수로 전달 가능 함수의 반환 값으로 사용 가능 - 함수 선언식 (function statement, declaration) function name(args) { // do something } 함수의 이름과 함께 정의하는 방식 name: 함수의 이름 args: 매개변수 호이스팅 발생 함수 호출 이후에 선언해도 동작 - 함수 표현식 (function expression) const myFunction = function (args) {.. 2021. 11. 12.
[JS] 조건문, 반복문 조건문 - if 조건 표현식의 결과값을 Boolean 타입으로 변환 후 참/거짓 판단 if, else if, else 조건은 소괄호() 안에 작성 실행할 코드는 중괄호{} 안에 작성 블록 스코프 생성 const nation = 'Korea' if (nation === 'Korea') { console.log('안녕하세요!') } else if (nation === 'France') { console.log('Bonjour!') } else { console.log('Hello!') } - switch 조건 표현식의 결과 값이 어느 값(case)에 해당하는지 판별 표현식의 결과값을 이용한 조건문, 표현식의 결과값과 case문의 오른쪽 값을 비교 break, default문은 선택적으로 사용 break문이 .. 2021. 11. 12.
[JS] 식별자, 변수, 타입, 연산자 식별자 (identifier) 변수를 구분할 수 있는 변수명 문자, 달러($), 밑줄(_)로 시작 대소문자 구분, 클래스명 외에는 모두 소문자로 시작 예약어 사용 불가능 - 작성 스타일 카멜 케이스 (camelCase): 변수, 객체, 함수에 사용, 두 번째 단어부터 첫 글자 대문자 파스칼 케이스 (PascalCase): 클래스, 생성자에 사용, 모든 단어의 첫 글자 대문자 대문자 스네이크 케이스 (SNAKE_CASE) : 상수에 사용, 모든 단어 대문자, 단어 사이에 언더스코어(_) 변수 - 변수 선언 키워드 let const var 재할당 가능 불가능 가능 재선언 불가능 불가능 가능 스코프 블록 스코프 블록 스코프 함수 스코프 * 선언 (Declaration): 변수를 생성하는 행위 또는 시점 * 할.. 2021. 11. 12.
[JS] DOM 조작 (선택, 변경) JavaScript의 필요성 브라우저 화면을 '동적'으로 만들기 위함 브라우저를 조작할 수 있는 유일한 언어 브라우저에서 할 수 있는 일 - DOM 조작 (Document Object Model) 문서(HTML, XML)를 조작 문서를 구조화, 구조화된 구성 요소는 하나의 객체 주요 객체 window: DOM을 표현하는 창, 가장 최상위 객체 (작성 시 생략가능) document: 페이지 컨텐츠의 Entry Point 역할, 등과 같은 다른 요소 포함 navigator, location, history, screen 단순한 속성 접근, 메서드 활용뿐만 아니라 프로그래밍 언어적 특성을 활용한 조작 가능 파싱 (Parsing) 구문 분석, 해석 브라우저가 문자열을 해석하여 DOM Tree로 만드는 과정 - .. 2021. 11. 12.
[PG/Python] 타겟 넘버 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 📌 문제 접근 방법 문제 분류가 dfs, bfs길래 그걸 어떻게 써야하나 한참 고민하다가 아이디어가 안떠올라서 그냥 일단 해보자! 하고 짜봤다. (사실 시간초과 나려나 했는데 안나서 읭?했음..) 숫자의 개수보다 1개 더 많게 리스트를 만들어주고 반복문을 돌리면서 리스트 안의 모든 값에 숫자를 더하고.. 2021. 11. 4.
[PG/Python] 문자열 압축 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 📌 문제 접근 방법 처음엔 문자열 길이의 약수들로만 단위를 줬었는데, 테스트 케이스가 틀렸길래 꼭 나누어 떨어지지 않더라도 남은 문자열은 더해주면 된다고 문제에 적혀있어서 이 부분을 수정했다. 첫 번째 반복문에서 i는 1부터 len(s)-1까지를 순회한다. i가 문자열을 나누는 단위가 된다. 두 번째 반복문에서 j는 i부터 len(s)-1까지 i.. 2021. 11. 3.
728x90