Software Engineering (41) 썸네일형 리스트형 [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; .. [C#] 리스트 복사, SetCursor C# 콘솔앱으로 프로젝트를 진행하던 중 새로 배운 기능 정리. 목 차 리스트 복사리스트 하나의 요소 복사List copiedList.Add(originalList[index]);원하는 하나의 요소를 복제하는 것은 그리 어렵지 않다. 리스트 전체 복사List copiedList.AddRange(originalList);리스트를 다음과 같이 하면 original리스트의 전체를 복사해버릴 수 있다.리스트 일부 복사List copiedList = originalList.GetRange(0, n + 1); // 인덱스 0부터 시작, n + 1개의 요소를 복사 이게 내가 궁금해서 찾아본 이번 공부의 실체다. 일부만 복사하려면, Add 대신 GetRange를 사용해서 원하는 인덱스와 거기서부터 필요한 요소의 개수.. [C#] 네임드 튜플+정렬 알고리즘 목 차 네임드 튜플퀘스트 저장 메커니즘을 임시로 int[,]의 정수형 이차원배열로 만들었는데 다른 사람들까지 알아보기 쉽게 만드려면 이 방법을 쓰라 하셔서 배워본다.정의네임드 튜플은 각 요소에 이름을 지정해서 데이터를 다룰 때 더 명확하고 이해하기 쉽게 한다. 배열로는 사용할 수 없고, List 같은 걸로 사용할 수 있다.사용방법List people = new List{ ("John", 30), ("Mary", 25)};foreach (var person in people){ Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");}이런 식으로 네임드 튜플을 사용하면 " .(내가 만든 이름) " 으로 후에 불러올 수 있으니 확실히.. [C#] 클래스, 직렬화, 메서드 수식자 이번 주차에 진행한 개인프로젝트를 돌아보며 쓰는 회고록 겸 추가로 궁금했던 사항들에 대해 정리하는 글이다. 목 차 GPT가 알려주는 C# 코너상속, 추상클래스, 인터페이스 각각을 사용할 상황.지난 금요일(24.04.26)에 튜터님한테 배운 내용을 생각해보니, 내가 아직 클래스들에 대한 이해도가 부족한 것을 느끼고 이에 대해 다양한 예를 들어 물었다. #일반 부모클래스ex) 사람 클래스의 자식 클래스로 학생 클래스, 직장인 클래스가 있을 수 있지만 둘 모두에 속하지 않는 사람도 존재해야 할 때.공통의 기능이 있는 경우: 부모 클래스의 메서드/속성을 자식이 이어받게.확장성이 필요할 때 구체적 관계 표현#추상 클래스ex) 사람 클래스를 직접적으로 사용하지 않고 만약 현재 만들어진 클래스 중 내가 만드려.. [C++, C#] C#과 다른 컴퓨터 언어의 차이점들5~7(完) 이번 글의 코드는 기초적인 구현에 시간낭비하지 않기위해 ChatGPT를 활용해 작성된 코드가 많다. 목 차 5. 배열 배열의 선언c와 cpp는 선언을 다음과 같이 한다:int intArr[5]; c#과 java는 선언을 다음과 같이 한다:int[] intArr = new int[5];new int는 cpp에서 동적배열을 할 때 사용했지만, 여기서는 오히려 5 대신 변수를 넣어버리면 C#은 오류가 난다. java는 그대로 이용하면 되지만 c#에서 동적배열을 쓰고 싶다면 cpp에서 vector와 비슷한 기능을 하는 List를 써야한다. 여기서 T는 type을 의미하며, T 대신 int 등 자료형을 입력하면 된다. 한편, 파이썬은 정적배열과 동적배열의 분리가 딱히 없다.my_list = []my_li.. [C++, C#] C#과 다른 컴퓨터 언어의 차이점들3~4 연산자와 제어문은 프로그래밍의 기본이다. 그에 따라 거의 모든 언어가 비슷한 연산자와 제어문을 공유한다. 따라서 프로그램 언어가 처음이라면 노션에서 배울 항목은 많아도, 이미 다른 언어를 어느정도 배운 적이 있다면 이 챕터들은 아마 수월하게 배울 수 있다.목 차 3. 연산연산자는 거의 모든 언어가 공유한다. 내가 배운 언어들(C, C++, C#, java, python)은 파이썬을 제외하고는 거의 차이가 없다고 봐도 무방하다. 이건 산술연산자, 논리연산자나 비트연산자 모두에 해당하는 이야기다. 특히 비트연산자는 다 같은 것으로 알고 있다. 산술연산 +, -, *, /, %, ++, --는 보기의 모든 언어가 공유한다. 어셈블리는 *, /, %가 함수로 구현되고, 파이썬은 추가로 //(정수연산)과 .. 이전 1 2 3 다음 목록 더보기