문제https://www.acmicpc.net/problem/1037 풀이오름차순으로 정렬하고, 첫 번째 인덱스와 마지막 인덱스의 수를 곱해 해당 수를 찾았다.약수가 하나뿐일 때는 해당 수를 제곱해서 바로 출력하고 조기종료하는 방식으로 구현했다. 소스코드#include using namespace std;int main(){ int num_divisor; cin >> num_divisor; int divisor_list[num_divisor]; // int* realDivisor = new int[num_divisor]; for(int i=0; i> divisor_list[i]; } if(num_divisor == 1) { cout divisor_list[j]) { m..
문제https://www.acmicpc.net/problem/2822 풀이주어진 8개의 수 중 합을 최대로 하는 5개의 수를 찾고, 5개 수의 합과 각 수들의 index를 출력하는 문제였다. 정렬을 통해 쉽게 풀 수 있는 문제였지만, 입력받은 수를 저장한 배열을 정렬해버리면 후에 index 출력이 불가능해진다.따라서 수를 입력받았던 원본 배열(scores[])은 그대로 두고, 원본 배열에서 큰 수 5개를 찾아 scoresInOrder[] 배열에 넣었다.선택 정렬처럼 가장 큰 수, 그 다음 큰 수, 그 다음 큰 수를 찾는 방식을 사용했는데, 원본 배열을 선택 정렬할 때와 달리 가장 큰 수를 저장한 후에 해당 수가 배열에서 사라지지 않으므로 앞에 저장한 수와 크기를 비교하는 단계( scores[j] 큰 수..
상황헤더파일(MyString.h), 구현 파일(MyString.cpp), 그리고 이를 이용해서 프로그램을 실행하는 파일(Ex0301_StringAbstractDataType)이 나눠져있는 구조로 실습을 하던 중 clang: error: linker command failed with exit code 1 (use -v to see invocation) 에러가 발생했다. 원인구글링으로 찾은 에러의 원인은 두 가지가 있다. 1. vscode가 mac에서 자동으로 파일을 링크해주지 않은 것 (https://stackoverflow.com/questions/66502205/mac-os-vs-code-insiders-code-runner-undefined-symbols-for-architecture-arm6) ..
string 클래스를 사용하지 않고, C++에서 문자열을 구현하는 방법은 다음의 두 가지가 있다. (1) 문자 자료형(char) 배열을 이용 (2) 문자 자료형(char) 포인터 이용 그런데 문자열의 문자를 하나씩 출력하는 코드를 짜는데, 두 가지 방법에 큰 차이가 없는 것 같이 느껴졌다.그리고 생각을 해보니 배열 = 시작하는 주소를 저장 / 포인터 = 주소를 저장 이라면 배열 == 포인터 ? 라는 신기한 논리가 완성되었다. 공부한 내용배열을 사용하면1. 문자열의 크기와 상관없이, 고정된 "배열의 크기"만큼의 공간을 차지한다2. 데이터가 메모리의 stack 영역에 저장된다3. 초기화 이후에 다른 문자열을 대입할 수 없다4. 문자열 내 각각의 문자에 접근하고 변경할 수 있다. 포인터를 사용하면1. "..
문제https://www.acmicpc.net/problem/2592 풀이처음에는 배열 두 개를 이용해 하나는 입력된 숫자를, 다른 하나는 해당 숫자가 입력된 횟수를 저장하며 풀 수도 있겠다고 생각을 했다.key-value 형태인 것 같아 map을 이용해 풀어보았다. map은 처음이라 사용방법을 구글에 검색해 풀었다.// 선언map numList;// insert #1numList.insert({1, 2});// insert #2numList[1]++;value가 하나씩 늘어나기 때문에, numList[key]++ 을 이용해 풀었다. key와 value가 모두 int라서 푸는동안 약간 헷갈리기도 했다. for(auto num : numList)를 이용해 처음에 맞게 풀었다가, 결과가 자꾸 이상하게 나와서..
문제https://www.acmicpc.net/problem/1292 풀이count_start 와 count_end 로 시작, 끝의 index를 입력받았다. 중첩 반복문을 사용해 설계했다.바깥 반복문의 변수 i는 수열에 들어가는 수를 담당했다. 안쪽 반복문의 변수 j는 i가 수열에 들어가는 횟수를 담당했다.별도의 변수 count가 1부터 증가하며 몇 번째 수인지 세었다. 바깥 반복문에서 변수 i는 1부터 1씩 증가하며 수행되었고, i와는 상관없이 총 수행횟수를 세는 count 변수가 입력받은 count_end 변수보다 작거나 같은동안 수행되었다.안쪽 반복문에서 변수 j는 1부터 1씩 증가하며 수행되었고, 바깥 반복문의 변수 i 보다 작거나 같은 동안, 그리고 count 변수가 count_end 변수보다 ..
The parts of a CSS ruleCSS는 다음과 같이 작성한다.선택자는 어떤 element에게 해당 설정을 부여할지를 정해주는 역할을 한다. Simple selectorsUniversal selector(*, wildcard): 모든 요소에 적용된다.Type selector(태그명): HTML element에 적용된다.Class selector(.클래스명): class 속성으로 해당 클래스명을 가진 element에 적용된다.ID selector(#아이디): id 속성으로 해당 아이디를 가진 element에 적용된다.Attribute selector([속성명="값"], [속성명]): 해당 속성을 가진 element에 적용된다. Grouping selectors쉼표(,)를 이용해 여러 선택자들을 한..
CSS가 마음처럼 되지 않아 복습해보고자 web.dev 사이트를 이용해 복습해보고자 한다. 도입다음의 HTML 코드에,I am a paragraph of text that has a few words in it. 다음의 CSS 코드를 적용하면p { width: 100px; height: 50px; padding: 20px; border: 1px solid;} 내용이 height 태그로 지정한 20px을 벗어나게 된다. 왜 그럴까? CSS로 보여지는 모든 것은 박스 형태이다.박스 모델에 대한 이해가 있어야 위의 경우처럼 예상치 못하게 작동하는 것을 막을 수 있다. Content and sizingExtrinsic sizing위의 예시에서 작성했듯, width와 height 속성에 특정한 값을 지정해..