📚 시리즈 목차 1. 컴퓨팅 사고 2. C언어 3. 배열 4. 알고리즘 5. 메모리 6. 자료구조 5. 메모리 1) 메모리 주소 일단 메모리 주소를 알보기전에 메모리 부터 알아야 한다. 1️⃣ 메모리 메모리는 영어로 당연히 memory라 하고 이는 여러분이 잘 아시는 것 처럼 "기억", "기록"을 뜻하는 영어단어이다. 컴퓨터에서도 마찬가지로 메모리는 기억을 하는 장치로 사용된다. 메모리는 데이터의 저장과 처리를 담당하여 컴퓨터 시스템의 핵심적인 역할을 수행한다. 풀어 말하면, 메모리는 컴퓨터가 실행 중인 프로그램과 작업에 필요한 데이터를 일시적으로 저장하는 장치로 우리가 일상적으로 사용하는 모든 프로그램과 작업에 불가능한 빠른 속도와 신속한 데이터 액세스를 제공한다. 컴퓨터 메모리는 크게 주기억장치와 보..
분류 전체보기
📚 시리즈 목차 1. 컴퓨팅 사고 2. C언어 3. 배열 4. 알고리즘 5. 메모리 6. 자료구조 📚 4. 알고리즘 1) 검색 알고리즘 1️⃣ 선형 검색 선형 검색은 가장 간단하고 직관적인 검색 알고리즘이다. 검색 방법은 배열의 인덱스를 처음부터 끝까지 하나씩 증가시키면서 방문하여 그 값이 속하는지를 검사하는 것이다. 선형 검색은 리스트를 처음부터 끝까지 순차적으로 탐색하기 때문에 최악의 경우 리스트의 길이에 비례하는 선형 시간 O(n)이 소요된다. (바로 다음에 배움) 즉, 리스트의 크기가 클수록 검색 시간이 증가한다. 따라서 선형 검색은 특정한 상황이나 작은 크기의 리스트에서 사용될 때 유용하다. 2️⃣ 이진 검색 이진 검색은 정렬된 배열 또는 리스트에서 특정한 값을 찾는 데 사용되는 검색 알고리즘이..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 function solution(survey, choices) { const scores = getScoresByPersonalityType(survey, choices); const resultOfPersonalityTypeTest = calculateScores(scores); return resultOfPersonalityTypeTest; } function getScoresByPersonalityType(survey, choices) { // 성격 유형별 점수 const scores = { ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 요약 하면 간단하다. 현재 보관되어있는 개인정보 수집 일자를 약관 종류에 따라 유효기간 만료일을 알아내서 오늘을 기준으로 만료일이 지났다면 폐기하면 된다. 바로 Date를 사용하면 조금 더 편리하겠다라고 생각해서 적용시켰다. 1. today를 new Date에 넣어준다. (구분자가 "-" 여야 ISO 8601 표준에 따라 날짜를 표기한다) today = new Date(today.replace(/[.]/g,"-")) 2. terms를 약관 종류에 따라 해당 유효기간을 알 수 있도록 객체로 변경하기 ..
📚 시리즈 목차 1. 컴퓨팅 사고 2. C언어 3. 배열 4. 알고리즘 5. 메모리 6. 자료구조 3. 배열 1) 컴파일링 저번시간에 컴파일에 대해 궁금해서 찾아보다가 소스코드가 머신코드가 되기까지 4단계가 있다는 걸 알고 정리했는데 오늘 수업내용에서 자세히 나왔다. 복습하면서 더 자세히 알아보자 이전시간에도 배웠듯이 우리는 clang이나 make를 통해서 컴파일링을 해왔다. 그렇다면 이 clang과 make가 도대체 뭘까? clang clang은 C, C++, Objective-C, Objective-C++ 등의 언어를 위한 컴파일러 도구이다. 높은 성능과 최신 언어 기능 지원, 진단 메시지의 품질 등으로 인해 많은 개발자들에게 선호되는 컴파일러이다. 컴파일 단계에서 소스 코드를 기계어로 변환하여 실행..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 틀린 풀이 처음 생각은 아 모든 numbers를 조합해서 배열로 만든 뒤 Math.max()로 가장 큰 수를 찾아야 겠다. 했는데 numbers의 길이가 100,000이라고 한다면 경우의 수는 100,000! 이고 1억 아니 1경 아니 1해 아니 1000해도 가뿐이 넘기는 숫자라서 계산이 불가능하다. 하지만 dfs도 복습할겸 해서 테스트 케이스만 통과하는 코드를 만들어 보았다. 그러나 생각보다 코드가 바로 생각나지 않았다. (복습이 필요할 것 같다) dfs를 돌리면 result 배열은 1번 예제에서..
sort를 공부하기전에 - 배열 고차 함수 고차 함수는 함수를 인수로 전달받거나 함수를 반환하는 함수를 말한다. 자바스크립트의 함수는 일급 객체이므로 함수를 값처럼 인수로 전달할 수 있으며 반환할 수도 있다. 고차 함수는 외부 상태의 변경이나 가변데이터를 피하고 불변성을 지향하는 함수형 프로그래밍에 기반을 두고 있다. 함수형 프로그래밍은 순수 함수와 보조 함수의 조합을 통해 로직 내에 존재하는 조건문과 반복문을 제거하여 복잡성을 해결하고 변수의 사용을 억제하여 상태 변경을 피하려는 프로그래밍 패러다임이다. 조건문이나 반복문은 로직의 흐름을 이해하기 어렵게 하여 가독성을 해치고, 변수는 누군가에 의해 언제든지 변경될 수 있어 오류 발생의 근본적 원인이 될 수 있기 때문이다. 함수형 프로그래밍은 결국 순수 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 어떻게 풀어야 할까 고민을 많이 했다. 엄청어렵기보단 문자열을 어떻게 잘 다루는지 알아보는 문제 같았다. 해야할 것 1. 어떤 장르가 가장 재생이 많이 되었는지 알아야한다. 2. 해당 장르에서 많이 들은 순으로 노래를 정렬해야한다. 3. 장르당 최대 2곡까지만 저장하고 나머지는 버린다. 4. 해당 장르 노래의 고유 번호를 retrun 해야한다. 1. 속한 노래가 많이 재생된 장르를 내림차순으로 배열안에 정렬하기 // 1. 속한 노래가 많이 재생된 장르를 내림차순으로 배열안에 정렬 const rank..
📚 시리즈 목차 1. 컴퓨팅 사고 2. C언어 3. 배열 4. 알고리즘 5. 메모리 6. 자료구조 2. C언어 1) C 기초 C언어는 데니스 매캘리스터 리치라는 사람이 1972년에 만든 언어이다. (UNIX 운영체제도 만드신 대단한분) C언어로 코드를 짜면 속도가 빠르고 바이너리 크기도 작아 다른 무엇보다 중요한 임베디드 혹은 모바일 계열, 또는 시스템 프로그래밍 등에서 주로 쓰인다. 과거에는 메모리 가격이 비쌌던 만큼 메모리를 적게 잡아먹는 프로그래밍 기법을 선호했으며, 화성 탐사선도 이러한 점을 반영하여 C언어로 만든 프로그램을 사용했다. 이렇게 C는 아주 오래되고 전통적인 순수 텍스트 기반의 언어이다. 자 그럼 어떤 언어이든 "hello, world" 출력하는 것으로 시작하는데 C언어는 어떻게 하는..