본문 바로가기

분류 전체보기

(96)
[HTML] 3장: 실무에서 자주 사용하는 HTML 필수 태그 다루기 (1) 개요이번에 공부해볼 주제는 HTML 태그들이다. 그동안 야매로 HTML을 다뤄봤기 때문에 몇몇 태그는 익숙하지만, 제대로 된 사용법이나 의도까지 완벽하게 이해한 것은 아니었다. 그래서 이번 기회에 정식으로 학습하게 되어 기쁘다. 현재 보고 있는 책에서 3장이 HTML을 다루는 마지막 장인데, 태그 사용법을 모두 익히면 HTML로 웹사이트를 구성하는 기본적인 과정은 마무리된다고 할 수 있다.3장은 두 번에 나누어 공부할 예정인데, 전반부는 기본적인 문서 작성과 관련된 내용을 다루고, 후반부는 표, 형식, 그리고 멀티미디어처럼 조금 더 심화된 주제를 포함하고 있다. 이를 통해 HTML의 기초부터 심화된 활용까지 체계적으로 이해할 수 있을 것으로 기대된다.텍스트 작성하기hn 태그제목이나 주제를 나타내는 텍스트..
[HTML] 2장: HTML 문서 작성을 위한 기본 내용 살펴보기 개요길벗 출판사에서 나온 "코딩 자율학습 - HTML+CSS+자바스크립트" 라는 책을 구매해 공부하게 되었다. 가장 큰 계기는 이 티스토리 블로그에 목차 하나 좀 만들어 보려는데 자꾸 버그가 나고 또 그 버그를 어떻게 해결할지 모르겠다는 것이다. 이왕 배우기로 한 김에 최대한 빠르게 책을 부셔버리고 다음 단계로 넘어가고 싶다. 그래도 명색이 개발 지망생인데 프론트엔드 벡앤드 모두 맛은 봐야 이래서 이게 내 적성이다 아니다 라는 판단을 내릴 수 있을 것이다.HTML의 기본 구성 요소태그 : 웹페이지의 다양한 구성 요소를 정의하는 역할이며, HTML 문법을 이루는 가장 작은 단위.형식) ()속성 : 태그에 어떤 의미나 기능을 보충하는 역할. 옵션.형식) Ex) 문법콘텐츠가 있는 문법: 콘텐츠의 앞, 뒤를 ..
[C++] 우선순위 큐 구현부더보기#include #include using namespace std;class PriorityQueue {private: vector heap; // 힙 속성 유지: 부모 노드가 자식 노드보다 크도록 만듦 void heapifyUp(int index) { if (index == 0) return; // 루트 노드에 도달하면 종료 int parent = (index - 1) / 2; if (heap[index] > heap[parent]) { swap(heap[index], heap[parent]); heapifyUp(parent); // 재귀적으로 부모 노드를 확인 } } // ..
[Unity6] Multiplayer Center 개요2024년 4월 29일, Unity6 프리뷰가 출시되며 게임 개발자들에게 많은 기대를 모았다. 그중에서도 가장 눈에 띄는 변화는 멀티플레이어 게임 제작의 간소화였다.지난 6월, 나는 5명의 팀원과 함께 Photon3을 사용해 약 일주일간 간단한 멀티플레이어 게임을 개발한 적이 있다. 개발 과정에서의 가장 큰 어려움은 멀티플레이 테스트였다. 버그를 찾아내기 위해서는 두 명 이상의 인원이 필요했으나, 팀원들이 각자의 작업에 집중해야 했기 때문에 그때그때 테스트를 진행하기 어려웠다.그러던 중, 9월 24일 코엑스에서 열린 Zempie Meetup 행사에서 Unity6의 멀티플레이어 기능 시연을 보게 되었다. 시연에서 특히 인상적이었던 점은 멀티플레이어 플레이 모드였다. 이는 멀티플레이 게임 개발 과정에서 ..
[JS - 코드팩토리] 3일차: 연산자 연산자대부분의 언어에서 같은 기호를 공유하기 때문에 js의 특이점 위주로 정리했다.캐스팅let sample = '99';console.log(+sample); //99console.log(typeof +sample); //numberconsole.log(1 + sample); //100sample = '안유진';console.log(+sample); //NaN보통 다른 언어들은 변수를 정수 자료형 따로 문자 자료형 따로 선언하지만, js는 그런 구분이 없다. 따라서 별도의 캐스팅 없이 '99' + 1 을 실행하면 100이라는 결과가 나온다. 단, 형 변환에 실패하면 NaN이 출력된다.비교 연산자console.log( 5 == '5'); //trueconsole.log( 5 === '5'); //false..
[JS - 코드팩토리] 2일차: hoisting hoisting자바스크립트에서 변수 선언과 함수 선언이 코드 실행 전에 해당 스코프의 최상단으로 끌어올려지는 동작.코드 작성 순서와 상관없이 변수와 함수의 선언이 실행 전에 미리 처리.변수의 선언만 끌어올려지며, 초기화는 실제 코드가 실행될 때 이루어짐.var 변수로 선언할 때console.log(name);var name = '코드팩토리';console.log(name);출력: undefined , 코드팩토리첫 번째 console.log(name): 여기서 변수를 선언하기 전에 console.log(name)을 호출했지만, JavaScript의 호이스팅으로 인해 에러가 발생하지 않고 undefined가 출력됩니다.호이스팅은 JavaScript 엔진이 변수 선언을 코드의 상단으로 끌어올리는 동작입니다. ..
[BaekJoon Silver3] C++: 이면수와 임현수 그동안 하루에 한 문제 이상씩 알고리즘 문제를 계속 풀어오긴 했지만, 블로그로 정리하지는 못했다. 오늘 풀 문제는 문제 길이부터가 어마어마하게 길어서 정리하지 않고는 풀기 힘들 것 같아 다시 블로그를 작성하게 되었다. 문제 링크: https://www.acmicpc.net/problem/1291문제 분석Input: input: 문제에서 주어진 방식으로 분석해야 되는 자연수Output: result: 분석 결과1: 이면수 - (4 or 6 이상의 수) and (각 자릿수의 합이 홀수)2: 임현수 - (2 or 4) or (합성수 and 소인수의 개수가 짝수인 수)3: 성경수 - 이면수도, 임현수도 아닌 수.4: 이면수 & 임현수 ` 완벽한 숫자와 태초의 숫자들(2와 3)의 합` 이라는 absolute의 조..
[JS - 코드팩토리] 1일차: 출력과 자료형 기본 출력console.log('Hello World');console.log(codefactory, '\n', $ive, '\n', _yuJin);모든 언어에 기본적으로 있는 print문이다. 특이하게 vs code의 output에서 출력을 볼 때는 왼쪽 사진과 같이 문자 왼쪽에 바가 생겨 있었다. 다른 곳에서 출력해도 이와 같은 모양이 나올지는 잘 모르겠지만, 아마 vs code의 특이점으로 사료된다. GPT가 말하기로는 위 코드의 2번 라인과 같이 출력을 할 때와 console.log을 여러 번 사용했을 때의 차이는 없다고 했지만 GPT를 믿을 수가 없어서...^^자료형동적 타이핑var age = 32;let ive = '아이브';const newJeans = '뉴진스';다른 언어에서 int, fl..
[BaekJoon Silver5] C++: 단어 정렬 Solved.ac Class2에 있는 단어 정렬에 대한 풀이 및 탐구에 대한 기록.정답률 40.448%.문제 분석Input: 단어의 개수 N알파벳 소문자 단어 N개, 최대 길이 50.Output: 정렬한 단어들을 순서대로 출력.길이가 짧은 것부터, 같으면 사전 순으로. 단, 중복 단어는 하나만 남기고 제거.문제 풀이초안소요시간: 23분 30초 : 다 풀고 조금 멍때렸다...#include using namespace std;struct Node {public: string word; Node* left; Node* right; Node(const string& w) : word(w), left(nullptr), right(nullptr) {}};class BinarySearchTree {private: ..
[BaekJoon Bronze1] C++: 크레이지 타임 백준 에 있는 "크레이지 타임"에 대한 풀이 및 탐구에 대한 기록.정답률 78.255%.문제 분석Input: 카드의 개수 NN개의 줄에 걸쳐 (카드 종류) (숫자) 가 주어짐.Output: N개의 줄에 걸쳐 (시간) (중앙 내리치기) 출력.1시부터 시작, 순서대로 시간을 외친다.시간 역행의 법칙: 만약 모래시계 카드가 나온다면, 시간은 거꾸로 흐른다.동기화의 법칙: 내가 부를 숫자와 카드가 일치하면, 중앙을 내리친다.과부하의 원칙: 위 두 법칙이 동시에 발동하면, 아무 일도 일어나지 않는다.문제 풀이초안소요시간: 23분 42초.#include #include #include #include using namespace std;int TimeCounter(int prevTime, bool isClockwi..
[BaekJoon Bronze2] C++: 블랙잭 Solved.ac Class.2에 있는 "블랙잭" 문제에 대한 풀이 및 탐구에 대한 기록.정답률: 49.003%목   차 문제 분석Input: 카드의 개수 N(3 ≤ N ≤ 100)과 맞춰야할 숫자 M(10 ≤ M ≤ 300,000)카드에 쓰여 있는 수 : 100,000을 넘지 않는 양의 정수 Output: M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합문제 풀이초안#include #include #include using namespace std;int main() { int cardCount, targetNum; vector cardVec; int result = 0; cin >> cardCount >> targetNum; for (int i = 0; i > input; cardVec.pus..
[Programmers Lv. 2] C++: 최댓값과 최솟값 프로그래머스 Lv.2에 있는 "최댓값과 최솟값" 문제에 대한 풀이 및 탐구에 대한 기록.정답률: 79%목   차 문제 분석Input: s: 공백으로 구분된 숫자들을 가진 문자열.Output: anwer: (최솟값) + " " + (최댓값)문자열을 받아 최소, 최대를 출력하기.문제 풀이초안#include #include #include using namespace std;string solution(string s) { vector intArr; stringstream ss(s); string token; while (getline(ss, token, ' ')) { intArr.push_back(stoi(token)); } int max = intArr[0]; ..
[Programmers Lv. 1] C++: 가장 많이 받은 선물 프로그래머스 Lv.1에 있는 "가장 많이 받은 선물" 문제에 대한 풀이 및 탐구에 대한 기록.정답률 24%.목   차 문제 분석Input: friends: 친구 이름 목록.gifts: 선물을 주고 받은 기록. (ex: muzi frodo = muzi가 frodo에게 선물을 주었다.)Output: result: 다음달에 선물을 가장 많이 받을 친구가 받는 선물의 개수.A -> B 5회, B -> A 3회  라면, 다음 달엔 B-> A 1회.0회 또는 같다면, 선물 지수(받은 횟수 - 준 횟수)에 따라 선물을 받는다.선물 지수도 같다면 다음 달에 주고 받지 않음.문제 풀이초안소요 시간: 55분 34초.#include #include #include using namespace std;int solution(..
[Programmers Lv. 1] C#: 성격 유형 검사하기 프로그래머스 Lv.1에 있는 "성격 유형 검사하기" 문제에 대한 풀이 및 탐구에 대한 기록.2022 KAKAO INTERNSHIP 출제 문제.정답률 52%목   차 문제 분석Inputsurvey: 판별할 유형의 종류choices: survey의 길이 = 질문의 개수Outputanswer: 성격 유형 (4자리의 알파벳)성격 유형R TC FJ MA N점수 체계: A3점 -> A2점 ->  A1점 ->  0점 ->  B1점 ->  B2점 ->  B3점A, B 중 높은 점수 = 성격. 점수가 같을 시 알파벳 순.문제 풀이초안소요 시간: 9분 11초. 시도 횟수: 1회.using System;public class Solution { public string solution(string[] surve..
[Programmers Lv. 1] C++: 로또의 최고 순위와 최저 순위 프로그래머스 Lv.1에 있는 "로또의 최고 순위와 최저 순위" 문제에 대한 풀이 및 탐구에 대한 기록.목   차 로또의 최고 순위와 최저 순위간만에 C++, 그리고 vector를 사용하게 된 문제다. 이에 따라 문제풀이를 시작하기 전에 가볍게 vector의 각종 키워드에 대한 복습부터 하고 문제풀이에 들어갔다. vector 주요 키워드//vector의 맨 뒤에 요소 추가.lottos.push_back(44);//vector의 size(실제 요소의 개수) 구하기.std::cout   문제 풀이#1차 답안이 코드는 정답이긴 하지만, switch - case 문을 사용할 때 하드코딩된 숫자로 사용하는 것은 그 의미를 알기 힘들고 유지보수성을 떨어트리므로, 개선이 필요해보인다.#2차 답안위의 코드에서 하드코딩된..
[Programmers Lv. 1] C#: 모의고사 프로그래머스 Lv.1에 있는 "모의고사" 문제에 대한 풀이 및 탐구에 대한 기록.목   차모의고사문제 해설문제 풀이 과정을 순차적으로 정리했다. #1차 시도 if (a1 >= a2) { if (a3 > a1) { result = new int[1]; result[0] = 1; } else if (a3 == a1) { if (a1 == a2) { result = new int[3]; result[0] = 1; ..
[TIL 24.07.15] 11.MonoBehaviour와 Unity 생명주기 . 목   차 확인 문제1. Time.timeScale을 0으로 하면 Update와 FixedUpdate는 모두 호출이 되지 않을까요? 그 이유는 무엇일까요?timeScale을 0으로 설정하면 Update와 FixedUpdate 모두 호출되지 않는다.timeScale은 상대값으로, 프레임 속도이든 실제시간이든 Unity 프로그램 안의 모든 시간의 흐름에 관여한다. 2. Update의 호출주기에 영향을 주는 것은 무엇일까요?프레임 속도. 즉, 하드웨어의 성능이나 프로그램의 복잡성에 영향을 받는다.timeScale. 게임의 전체 시간의 흐름을 조절한다.3. FixedUpdate의 호출주기에 영향을 주는 것은 무엇일까요?실제 시간.timeScale. 게임의 전체 시간의 흐름을 조절한다.4. Awake와 Sta..
[TIL 24.07.12] 10.선형 자료구조 - Queue . 목   차 확인 문제1. Queue가 무엇인지 알고 있나요? 어떤 방식으로 작동하는지 설명할 수 있을까요?큐(Queue)는 데이터 구조 중 하나로, 먼저 들어온 데이터가 먼저 나가는 FIFO(First In, First Out) 방식으로 작동한다. 즉, 먼저 추가된 요소가 먼저 제거된다. Enqueue: 큐의 끝부분에 새로운 요소를 추가.Dequeue: 큐의 앞부분에서 요소를 제거 및 반환Peek: 큐의 앞부분에 있는 요소를 제거하지 않고 반환.IsEmpty: 큐가 비어있는지 확인.Count: 큐에 있는 요소의 개수를 반환. 2. Queue를 직접 구현해본 경험이 있을까요? 없다면 직접 구현해봅시다.. 설명 문제1. Queue의 특성을 설명해주세요.FIFO 구조.동적 크기 관리.2. Queue는 언제..
[TIL 24.07.11] 09. 선형 자료구조 - Stack . 목   차 확인 문제1. Stack가 무엇인지 알고 있나요? 어떤 방식으로 작동하는지 설명할 수 있을까요?Stack은 선입후출의 방식으로 작동하는 자료구조이다. 즉, 가장 마지막에 삽입된 데이터가 가장 먼저 배출된다. Stack의 기능은 주로 다음과 같다:Push: 스택의 맨 위에 새로운 데이터 추가.Pop: 스택의 맨 위의 데이터 제거 및 반환.Peek / Top: 스택의 맨 위 데이터가 무엇인지 전달.isEmpty: 스택이 비어있는지 여부를 bool값으로 전달.size: 현재 스택에 있는 데이터의 개수를 반환. 2. Stack을 직접 구현해본 경험이 있을까요? 없다면 직접 구현해봅시다.구현해본 경험이 있다. 아래는 아주아주 간단한 예이다:using System;using System.Collect..
[TIL 24.07.10] 08.선형 자료구조 - LinkedList . 목   차 확인 문제1. LinkedList가 무엇인지 알고 있나요? 어떤 방식으로 작동하는지 설명할 수 있을까요?LinkedList는 각 데이터 요소들을 노드로 구성하고 각 노드는 다음 노드를 가리키는 포인터를 가지는 자료구조이다. 각 노드는 메모리 상에서 연속적인 위치가 아닌 곳에 존재할 수 있다. 노드는 최소 2개의 필드를 갖는다. 1. 노드 자체가 담고 있을 데이터. 2. 다음 노드의 주소를 가리키는 포인터. 이때, 포인터의 값이 null이라면 기본적으로 노드의 끝이라는 의미를 갖는다.  새로운 노드를 추가하려면 우선 새 노드 객체를 만든다.만약 이 노드가 최초의 노드라면, 포인터는 반드시 null일 것이다.  이 노드가 두 번째 노드라면, 2가지 선택지가 있다. 기존 노드의 앞에 배치되느냐,..