공부 53

[알고리즘] 이진탐색, 재귀함수

이진탐색(이분탐색) binary search 업다운 게임 전체범위의 딱 절반으로 탐색 총 배열의 길이가 N이라고 할때 그 절반을 탐색하므로 N/2 그다음 N/2/2 이므로 N/(2^2).... 가면 N/2^k 가 되고 이렇게 무한히 반복하다보면 1개만 남았을때를 가정하면 N/2^k = 1이 여야 하므로 k = log N 이된다. 즉 시간복잡도는 O(log N) 이라고 할수있다. 만약 배열이 정렬이 되어있지않다면 이진탐색이 되지않는다. 이럴때 정렬을 이용하여야한다. 재귀함수 자신의 함수안에서 다시한번 자신의 함수를 호출한다. 예를들어 60에서 0까지 카운트하는 함수를 만들때 위와같이 재귀함수를 쓴다. 팩토리얼 3! = 321 4! = 4321=43! 즉, Factorial(n)=n*Factorial(n-1..

[CS] 웹 정의, 역사, 종류 등

웹프로그래밍 웹의 기본 목적 다른 여러 컴퓨터에서 문서를 공유하거나 보는 목적 웹에서 다루는 문서를 웹 문서 라고 부름 웹의 구조 인터넷을 활용 거미줄처럼 연결된 정보 소통망, world wide web →웹문서를 인터넷 상의 컴퓨터들 끼리 주고 받는 네트워크 시스템 웹 구성 웹서버 와 클라이언트 컴퓨터들로 구성 웹서버 웹사이트를 탑재하는 컴퓨터로 구글(www.google.com), 네이버(www.naver.com) 등 웹 문서, 이미지, 동영상 등의 데이터 저장 관리 웹 클라이언트의 요청을 받아 웹 문서 전송 웹 서버로 작동하도록 하는 소프트웨어를 실해하는 컴퓨터 웹 클라이언트 사용자 인터페이스 담당 웹 서버에 웹 문서를 요청하고 받아 사용자에게 볼수있도록 출력 인터넷과 웹은 다르다 인터넷 웹의 개념이..

공부/CS 2022.02.28

[알고리즘] 자료구조, 배열, linked list

자료구조 특정 자료구조는 삽입/삭제가 빠르고, 특정 자료구조는 조회가 빠르다. 이렇게 어떤 경우에 이 자료가 좋고, 어떤 경우는 저 자료가 좋은 것 처럼 경우에 따라 다양한 자료구조와 알고리즘을 사용해야한다. 비유 못을 박을때는 망치가 필요, 나사를 뺄 때는 뺀치가 필요한것처럼, 다양한 공구들의 사용법을 배우는것이다. Array 순차적으로 데이터를 저장 배열은 크기가 정해진 데이터의 공간. 한번 정해지면 바꿀수 없다. ->원소를 새로 추가하려면, 새로운 공간을 할당을 해야하기때문에 매우 비효율적 자료구조 index를 통해 원소에 즉시 접근할수있다. Ex rooms[3] -> 즉시 접근 가능하다는것은 상수 시간내에 접근할수있으므로 O(1)내에 접근 할수있다고 말한다. 배열은 원소를 중간에 삽입/삭제 하려면..

[알고리즘] 알고리즘, 시간복잡도, 공간복잡도, 점근표기법

시간복잡도 입력값과 문제를 해결하는데 걸리는 시간과의 상관관계 중첩for문시 N^2의 수식을 가짐 따라서 중첩문이 생기면 시간이 기하급수적으로 늘어난다는것 참고 공간복잡도 입력값과 문제를 해결하는데 걸리는 공간과의 상관관계 Array 길이, 값을 넣어줄 각 변수들을 계산하여 카운트, 단 재할당하는 중복되는 변수의 공간은 카운트하지않는다. ->만약 공간복잡도가 그저 숫사상수로 29,30 이라면 공간복잡도 보단 시간복잡도로 비교하여 알고리즘의 효율성을 생각한다.따라서 시간복잡도를 더 신경써야한다. 보통 시간복잡도의 효율성을 비교할때 예를들어 3N+106 이라는 시간이 걸린다면 상수 106은 비교대상에서 제외하고 3N 부분만 계산한다 N에 따라 걸리는시간이 무한대로 커지기때문에 106은 비교대상에 넣지 않는것..

box-sizing: border-box

box-sizing 을 통해 전체 width, height이 어떤걸 포함한 사이즈인지 결정할수있게 된다. 아래 코드를 보면서 이해해보자. container가 width 500, height 500을 가진 정사각형 사이즈를 만들었고 padding 으로 25px 를 주었다. 이때 box-sizing 설정이 주석처리 되어있기 때문에 어떤 사이즈를 포함하는지 아래를 보자 computed를 보면 500x500이라는 사이즈외에 padding 때문에 상하좌우에 25px씩 늘어졌다. 따라서 이 총 box 사이즈는 550x550 이 되었다. 위와같이 box-sizing을 border-box 라고 해주게되면 padding값이 있더래도 그것과 border(테두리 굵기)까지 포함하여 500x500 사이즈가 된다. 이렇게 되면..

공부/CSS 2021.12.26

[CS] CORS

https://developer.mozilla.org/ko/docs/Web/HTTP/CORS 교차 출처 리소스 공유 (CORS) - HTTP | MDN 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라 developer.mozilla.org 교차 출처 리소스 공유 (CORS) 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다..

공부/CS 2021.12.12

프로그래머스 카카오 2018 3차 방금그곡

https://programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr 내가푼방식 function solution(m, musicinfos) { var answer=[]; var numb=[]; for(var i=0; i< musicinfos.length; i++){ var b= musicinfos[i].split(","); var totalmusicplay=0; var end= (b[1].substr(0,2)/1)*6..

항해99 알고리즘 테스트 2주차 마지막

시험문제는 총3개 중 1개를 선택하여 푸는것이였고, 2주차동안 풀었던 문제들을 혼합하여 응용한 문제였다. 그동안 알고리즘문제를 풀며 쌓인 내공으로 해당 메서드들을 써가며 문제를 풀었다. 대략적인 문제는 자연수를 입력값을 받아 각자리를 뒤집어서 위치시킨후 그 각자리수를 하나하나 더한값들을 string 형식으로 출력하는거였다. 처음엔 그냥 정수를 reverse를 써서 다 더하고 끝나는 문제가 했는데, 그게아니라 718253 이라는 숫자를 넣었다면 출력값이 '3+5+2+8+1+7=26' 와 같이 뽑아주어야했다. 문제 푸는데 30분정도 걸렸고, 검토하는데 20분정도, 영상 찍는데 20분, 올리는대 10분 정도 걸려서 총 1시간 반정도 걸린거 같다. 영상도 찍고 해설도 해야하는 과정도 있었기도했고 요번주차를 통해..

항해99 문제40번풀이 (신규 아이디 추천,프로그래머스, 카카오 blind Recruitment )

https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 접근법 추후업데이트 코드 해석 추후업데이트 다른사람이 푼것 더보기