본문 바로가기

전체 글463

C++에서 삼항연산을 하는 방법 | C++ 여러분 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 삼항연산을 하는 방법에 대해서 알아보겠습니다. # 삼항연산을 이용해서 입력된 두 정수 a, b 중 큰 값을 출력하는 방법 #include int main() { int a, b; scanf("%d %d", &a, &b); printf("%d", a > b ? a : b); return 0; } # 삼항연산을 이용해서 입력된 세 정수 a, b, c 중 가장 작은 값을 출력하는 방법 #include int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); printf("%d", a < b ? (a < c ? a : c) : (b < c ? b : c)); return 0; } 이렇게 C++에서 삼항연산을 하.. 2020. 9. 24.
C++에서 비트단위논리연산을 하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 비트단위논리연산을 하는 방법에 대해서 알아보겠습니다. 참고로 비트단위 논리연산자로는 다음과 같은 기호들이 있습니다. ~ : bitwise not & : bitwise and | : bitwise or ^ : bitwise xor > : bitwise right shift # 입력된 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력하는 방법 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력하려면 ~ 기호를 사용합니다. 1을 입력하면 1은 32비트 2진수로 표현하면, 00000000 00000000 00000000 00000001 이 되고, ~1은 11111111 11111111 11111111 11111110 이 되는데 이것은 -2를 의미합니다. #incl.. 2020. 9. 23.
C++에서 논리연산 하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 논리연산을 하는 방법에 대해서 알아보겠습니다. # 1 또는 0이 입력되었을때 반대로 출력하는 방법 입력받는 것은 정수로 받고 논리연산 기호인 !를 사용해서 값을 false로 변환해서 출력합니다. #include int main() { int a; scanf("%d", &a); printf("%d", !a); return 0; } # 두 개의 참 또는 거짓이 입력되었을때 모두 참일 때에만 참을 출력하는 방법 두 개의 값이 모두 참일 때는 && 기호를 사용합니다. #include int main() { int a, b; scanf("%d %d", &a, &b); printf("%d", a && b); return 0; } # 두 개의 참 또는 거짓이 입력되었.. 2020. 9. 22.
C++에서 비교연산을 하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 비교연산을 하는 방법에 대해서 알아보겠습니다. # 정수 2개(a, b)를 입력받아 a가 b보다 크면 1을, a가 b보다 작거나 같으면 0을 출력하는 방법 a가 b보다 클경우, a>b는 true를 반환하는데 이 값은 1이므로 %d를 통해 출력하면 1을 출력할 수 있습니다. 반면에 false의 경우 이 값은 0이므로 %d를 통해 출력하면 0이 출력됩니다. #include int main() { int a, b; scanf("%d %d", &a, &b); printf("%d", a>b); return 0; } # 정수 2개(a, b)를 입력받아 a가 b와 같으면 1을 출력하고, 다르면 0을 출력하는 방법 #include int main() { int a, b;.. 2020. 9. 21.
C++에서 비트시프트 연산을 하는 방법 | C++ 여러분 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 비트시프트 연산을 하는 방법에 대해 알아보겠습니다. # 정수 1개를 입력받아 2배 곱해 출력하는 방법 정수 1개를 입력받아 2배 곱해서 출력하는 방법에 대해서 알아보겠습니다. 연산에서 2를 곱해서 출력해도 되지만, 비트시프트 >>, 2020. 9. 20.
C++에서 아주 기본적인 산술연산 하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 아주 기본적인 산술연산을 하는 방법에 대해서 알아보겠습니다. # 정수 2개를 입력받아 2개 정수의 합을 출력하는 방법 (단, 입력이 되는 정수의 범위는 -1073741824 ~ 1073741824 입니다.) 입력이 되는 정수가 int 범위이나, 산술연산 결과에 의해서 범위를 넘어가게 될 경우가 있으므로, long long int를 사용합니다. #include int main() { long long int a, b; scanf("%lld%lld", &a, &b); printf("%lld", a+b); return 0; } # 정수 1개를 입력받아 부호 바꿔 출력하는 방법 (단, 입력이 되는 정수의 범위는 -2147483647 ~ +2147483647 입니.. 2020. 9. 19.
C++에서 진수변환 하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 진수변환하는 방법에 대해서 알아보겠습니다. # 10진수를 8진수로 진수변환 하는 방법 10진수 숫자를 입력받아 8진수로 변환해서 출력하는 방법에 대해서 알아보겠습니다. 10진수 숫자를 받을 때는 %d로 받고 출력할 때 %o를 쓰면 8진수로 변환해서 출력합니다. #include int main() { int data; scanf("%d", &data); printf("%o", data); return 0; } # 10진수를 16진수로 진수변환 하는 방법 10진수를 숫자를 입력받아 16진수로 변환해서 출력하는 방법에 대해서 알아보겠습니다. 10진수 숫자를 입력 받을 때는 %d로 받고 출력할 때, %x를 사용하면 16진수로 변환해서 출력합니다. #include.. 2020. 9. 18.
크기가 큰 정수를 입력받아 출력하는 방법 | long long int | C++ 안녕하세요. 혀코입니다. 이번 시간에는 크기가 큰 정수를 입력받아 그대로 출력하는 방법에 대해서 알아보겠습니다. int 는 -2147483648 ~ + 2147483647 범위의 정수를 입력하고 출력할 수 있습니다. 이 범위보다 크기가 큰 정수를 입력받아 출력하려면 long long int 를 사용해야 합니다. long long int는 -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807 범위의 정수를 입력하고 출력할 수 있습니다. #include int main() { long long int n; scanf("%lld", &n); printf("%lld", n); return 0; } long long int를 사용할 때는 %lld 로 사용합니다. 이렇.. 2020. 9. 17.
큰 범위의 실수 1개 입력받아 반올림해서 출력하는 방법 | double | C++ 안녕하세요. 혀코입니다. 이번 시간에는 실수 1개를 입력받아 그대로 출력하는 방법에 대해서 알아보겠습니다. 실수를 저장하려면 float을 사용하는데, float은 ±3.4*10-38 ~ ±3.4*1038 범위의 실수만을 저장할 수 있습니다. 이 범위보다 큰 실수를 저장하려면, double을 사용해야 합니다. double은 ±1.7*10-308 ~ ±1.7*10308 범위의 실수를 저장할 수 있습니다. 아래 예제에서는 소수점 이하 자리수가 11이상인 실수를 입력하면, 반올림해서 11자리까지 출력하는 코드입니다. #include int main() { double data; scanf("%lf", &data); printf("%.11lf", data); return 0; } double를 사용할때, scan.. 2020. 9. 16.
크기가 큰 정수를 입력받아 출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 크기가 큰 정수를 입력받아 출력하는 방법에 대해서 알아보겠습니다. int는 -2147483648 ~ -2,147,483,647 범위의 정수를 저장할 수 있으나 그 수보다 큰 수를 저장할 수 없습니다. 그래서 그보다 더 큰 수인 4,294,967,295까지의 정수를 저장하려면 unsigned int를 사용해야 합니다. #include int main() { unsigned int n; scanf("%u", &n); printf("%u", n); return 0; } 이렇게 크기가 큰 정수를 입력받아 출력하는 방법에 대해서 알아봤습니다. 유용하셨다면, 공감과 구독 부탁 드립니다. 감사합니다. :) 2020. 9. 16.
년월일 입력 받아 형식 바꿔 출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 년월일 입력받아 형식 바꿔 출력하는 방법에 대해서 알아보겠습니다. yyyy.mm.dd 형식의 년월일을 입력받아서 dd-mm-yyyy 형식으로 출력하는 방법입니다. #include int main() { int y, m, d; scanf("%d.%d.%d",&y,&m,&d); printf("%02d-%02d-%04d",d,m,y); return 0; } 이렇게 년원일 입력받아 형식을 바꿔 출력하는 방법에 대해서 알아봤습니다. 유용하셨다면, 공감과 구독 부탁 드립니다. 감사합니다. 2020. 9. 15.
퀴즈 프로그램 | Project | JavaScript 여러분 안녕하세요. 혀코입니다. 이번 시간에는 JavaScript를 사용해서 퀴즈 프로그램을 제작해 보도록 하겠습니다. HTML 파일, CSS 파일과 JavaScript 파일을 다음과 같이 준비 합니다. index.html Question text Question Question Question Question Submit style.css * { margin: 0; padding: 0; box-sizing: border-box; } body { background-color: #ccc; display: flex; align-items: center; justify-content: center; height: 100vh; } .container { background-color: #fff; border-.. 2020. 9. 14.
시분초 입력받아 분만 출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 시분초 입력받아 분만 출력하는 방법에 대해서 알아보겠습니다. #include int main() { int h, m, s; scanf("%d:%d:%d",&h,&m,&s); printf("%d",m); return 0; } 이렇게 시분초 입력받아 분만 출력하는 방법에 대해서 알아봤습니다. 유용하셨다면, 공감과 구독 부탁 드립니다. 감사합니다. 2020. 9. 14.
문자열을 입력받아 그대로 출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 문자열을 입력받아 그대로 출력하는 방법에 대해서 알아보겠습니다. 문자열을 받을 때는 %s를 사용해서 받습니다. #include int main() { char a[51]; scanf("%s",a); printf("%s",a); return 0; } 정수와 문자를 받을 때와는 달리 char에 받을 문자열의 개수를 지정해 주고, scanf로 데이터를 저장할때 레퍼런스기호를 붙이지 않는 것이 특징입니다. 빈칸을 포함한 문장을 받을 때는 fgets 함수를 사용합니다. #include int main() { char data[2001]; fgets(data, 2000, stdin); printf("%s",data); return 0; } 다음은 실수를 받아서 정수부와 소수점.. 2020. 9. 13.
2021 신년 D-day 카운트다운 | Project | JavaScript 안녕하세요. 혀코입니다. 이번 시간에는 JavaScript를 사용해서 2021 신년 D-day 카운트다운 프로그램을 작성해보도록 하겠습니다. 기준이 되는 D-day는 신년 2021년 1월 1일로 설정하고 카운트다운을 세어보도록 하겠습니다. HTML 파일, CSS 파일 그리고 JavaScript 파일을 다음과 같이 준비합니다. index.html New Years 2021 0 days 0 hours 0 minutes 0 seconds style.css * { box-sizing: border-box; margin: 0; padding: 0; } body { background-image: url('background.jpg'); background-size: cover; width: 100%; height.. 2020. 9. 13.
정수나 문자 입력받아 출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 정수나 문자를 받아 출력하는 방법에 대해서 알아보겠습니다. 우선 정수를 입력받아 출력하는 방법입니다. #include int main() { int n; scanf("%d", &n); printf("%d", n); return 0; } scanf 함수는 정수를 입력받아 저장하는 역활을 합니다. 숫자를 받을때는 %d를 사용하고, 저장할때는 &n 형식으로 사용해서 값을 저장하고, printf 함수를 사용해서 n을 출력합니다. 다음은 문자를 입력받아 출력하는 코드입니다. #include int main() { char x; scanf("%c",&x); printf("%c",x); return 0; } 문자를 받을때는 %c를 사용합니다. 다음은 실수를 입력받아 출력하는 코.. 2020. 9. 12.
C 프로그래밍 기본적인 입출력 하는 방법 | C 안녕하세요. 혀코입니다. 이번 시간에는 C 프로그래밍으로 기본적인 입출력을 하는 방법에 대해서 알아보겠습니다. # Hello World 출력하기 #include int main(void) { printf("Hello World\n"); return 0; } 프로그래밍의 시작은 언제나 그렇듯이 Hello World 로 시작합니다. #include 부분은 라이브러리를 추가시키는 부분이고, stdio.h는 standard input ouput의 약자로 printf 함수를 포함하고 있습니다. 그리고 입력은 void로 받지 않고, 리턴형은 int형입니다. 그리고 \n은 줄바꿈 기호로 줄을 바꿀때 사용합니다. # 기호의 종류 기호 출력 \n 줄바꿈 \t 탭 \\ \ \' ' \" " %% % # 입력을 하고 바로 .. 2020. 9. 11.
쌀 배달 그리디 알고리즘 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 최적의 값을 찾는 그리디 알고리즘에 대해서 알아보겠습니다. 쌀을 n kg 주문을 받아서 배달을 해주는 프로그램을 만든다고 가정해 보겠습니다. 쌀을 담은 포대가 5kg, 3kg 밖에 없을때, 최소한의 개수로 배달을 할 수 있게 최적의 개수를 찾는 알고리즘이 그리디 알고리즘 입니다. 만약 18kg을 주문받았다고 했을 때, 5kg 세개와 3kg 하나 이렇게 4개를 배달하면 되고, 6kg을 주문받았다고 했을 때는 3kg 2개를 배달하면 되고, 최적의 값을 찾지 못했을 때는 -1이 출력이 되어야 합니다. 우선, 가장 큰 값으로 n을 나눠줘야 합니다. 만약 나머지가 발생되면, n에서 작은값을 한번 빼주고 작은값을 뺀 값에서 다시 큰 값으로 n을 나눠주고 나머지가 남는지 확인해.. 2020. 9. 11.
printf 함수를 사용해서 hello를 출력하는 방법 | printf | #1 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 printf 함수를 사용해서 hello를 출력하는 방법에 대해서 알아보겠습니다. printf 함수를 사용해서 hello를 출력하는 방법은 다음과 같습니다. #include int main() { printf("Hello"); return 0; } printf 함수를 사용하지 않고 hello를 출력하는 방법은 다음과 같습니다. #include int main() { std::cout 2020. 9. 11.
영어문장에서 모음의 개수 세는 방법 | Algorithm | JavaScript 안녕하세요. 혀코입니다. 이번 시간에는 영어문장에서 모음의 개수를 세는 방법에 대해서 알아보겠습니다. function vowels(str) { let count = 0; const checker = "aeiou" for(let char of str.toLowerCase()) { if(checker.includes(char)) { count++; } } return count; } 문자열 하나를 받아서 소문자로 바꾼다음 문자열의 단어가 모음으로 이뤄진 checker에 속할때 count를 증가시켜서 모음의 개수를 셀 수 있습니다. 이 코드는 다음과 같이도 적을 수 있습니다. function vowels(str) { let count = 0; const checker = ['a','e','i','o','u'].. 2020. 9. 10.
숫자를 받아서 피라미드 모양으로 표시하는 방법 | Algorithm | JavaScript 안녕하세요. 혀코입니다. 이번 시간에는 숫자를 하나받아서 피라미드 모양으로 표시하는 방법에 대해서 알아보겠습니다. 1일때, '#' 2일때, ' # ' '###' 3일때, ' # ' ' ### ' '#####' 4일때, ' # ' ' ### ' ' ##### ' '#######' function pyramid(n) { const midpoint = Math.floor((2 * n - 1) / 2); for(let row = 0; row < n; row++){ let level = ''; for(let col = 0; col < 2 * n - 1; col++) { if(midpoint - row = col) { level += '#'; } else { level += ' '; } } console.log(l.. 2020. 9. 9.
숫자를 받아서 계단형식으로 표시하는 방법 | Algorithm | JavaScript 안녕하세요. 혀코입니다. 이번 시간에는 JavaScript로 숫자 하나를 받아서 #기호로 다음과 같이 계단을 표시하는 방법에 대해서 알아보겠습니다. 1의 경우, '#' 2의 경우, '# ' '##' 3의 경우, '# ' '## ' '###' 4의 경우, '# ' '## ' '### ' '####' function steps(n) { for(let row = 0; row < n; row++) { let stair = ''; for(let col = 0; col < n; col++){ if (col 2020. 9. 8.
한글의 한 글자를 초성 중성 종성 나누는 방법 | Algorithm | JavaScript 안녕하세요. 혀코입니다. 이번 시간에는 한글의 한 글자를 초성 중성 종성으로 나눠 배열로 저장하는 방법을 알아보겠습니다. 우선 문자의 유니코드 번호를 구하는 방법을 알아야합니다. 문자의 유니코드 번호를 구하는 방법은 charCodeAt() 메소드를 사용합니다. 유니코드 번호로 부터 문자를 표시하는 방법은 String.fromCharCode(num) 함수를 사용합니다. 자음에 해당하는 문자를 확인해 보기위해 ㄱ의 유니코드 번호를 확인해보면 12593이며, ㅎ의 유니코드 번호는 12622 이므로, for loop을 이용해서 ㄱ과 ㅎ 사이의 자음을 모두 표시해 보면 다음과 같습니다. "ㄱ".charCodeAt(); // 12593 "ㅎ".charCodeAt(); // 12622 for(let i = 12593.. 2020. 9. 7.
문장의 각 단어의 첫글자를 대문자로 바꾸는 방법 | Algorithm | JavaScript 안녕하세요. 혀코입니다. 이번 시간에는 문장의 각 단어의 첫글자를 대문자로 바꾸는 방법에 대해서 알아보겠습니다. function capitalize(str) { words = []; words = str.split(' '); for(let i = 0; i 2020. 9. 6.
문자열 구성 비교하는 방법 | Algorithm | JavaScript 안녕하세요. 혀코입니다. 이번 시간에는 문자열 구성 비교하는 방법에 대해서 알아보겠습니다. function anagrams(stringA, stringB) { let a = stringA.replace(/[^\w]/g,'').toLowerCase().split('').sort().join(); let b = stringB.replace(/[^\w]/g,'').toLowerCase().split('').sort().join(); return a === b; } module.exports = anagrams; 문자열에 replace 메소드를 써서 regular expression(/[^\w]/g,'')을 적용하면, 기호와 스페이스를 제거해줍니다. 여기에 toLowerCase() 메소드를 적용하면 모든 문자를.. 2020. 9. 5.
배열(Array)을 일정한 사이즈에 맞춰 나누는 방법 | Algorithm | JavaScript 안녕하세요. 혀코입니다. 이번 시간에는 배열(Array)을 일정한 사이즈에 맞춰 나누는 방법에 대해서 알아보겠습니다. function chunk(array, size) { const chunked = []; for (let element of array) { const last = chunked[chunked.length - 1]; if(!last || last.length === size) { chunked.push([element]) } else { last.push(element); } } return chunked; } module.exports = chunk; 비어있는 배열(Array)을 하나 만들고, 받은 배열을 for of loop을 사용해 돌립니다. 비어있는 배열의 마지막 element를 .. 2020. 9. 4.
3의 배수에 'Kung' 5의 배수에 'JJak' 표시하는 방법 | Algorithm | JavaScript 안녕하세요. 혀코입니다. 이번 시간에는 3의 배수에 'Kung' 5의 배수에 'Jjak' 표시하는 방법에 대해서 알아보겠습니다. function kungjjak(n) { for(let i = 1; i 2020. 9. 3.
문자열 중에서 가장 많이 사용된 문자 확인하는 방법 | Algorithm | JavaScript 안녕하세요. 혀코입니다. 이번 시간에는 문자열 중에서 가장 많이 사용된 문자를 확인하는 방법에 대해서 알아보겠습니다. function maxChar(str) { const charMap = {}; let max = 0; let maxChar = ''; for (let char of str) { if(charMap[char]) { charMap[char]++; } else { charMap[char] = 1; } } for (let char in charMap) { if (charMap[char] > max) { max = charMap[char]; maxChar = char; } } return maxChar; } module.exports = maxChar; 문자열을 받아서 for of loop을 사용.. 2020. 9. 2.
숫자를 거꾸로 표시하는 방법 | Algorithm | JavaScript 안녕하세요. 혀코입니다. 이번 시간에는 숫자를 거꾸로 표시하는 방법에 대해서 알아보겠습니다. 만약 숫자 19를 거꾸로 표시하면, 91이 표시가 되고, -19를 거꾸로 표시하면, -91이 표시가 되고 700의 경우 7이 표시가 되고, -700의 경우, -7이 표시가 되도록 코딩해 보겠습니다. function reverseInt(n) { return parseInt(n.toString().split('').reverse().join('')) * Math.sign(n); } module.exports = reverseInt; toString() 함수는 숫자를 문자로 바꾸고, split()은 문자열을 배열로 바꾸고, reverse()는 배열의 순서를 바꾸고, join()은 배열을 하나의 문자열로 바꿔줍니다. 그.. 2020. 9. 1.
문자열(string)을 거꾸로 해도 원래 문자열과 동일한지 확인하는 방법 | Alogrithm | JavaScript 안녕하세요. 혀코입니다. 이번 시간에는 JavaScript에서 문자열을 거꾸로 해도 원래 문자열과 동일한지 확인하는 방법에 대해서 알아보겠습니다. function palindrome(str) { return str == str.split('').reduce((rev,char) => char + rev, '') ? true : false; } module.exports = palindrome; 지난 시간에 문자열 거꾸로 하는 방법에 대해 배운것을 응용하여 입력받은 문자열을 거꾸로 뒤집은 다음, 기존 문자열과 동일한지 확인 후, 삼항 연산자를 사용해서 해당 문자열이 같으면, true를 반환하고 다르다면 false를 반환하도록 구현했습니다. function palindrome(str) { return str .. 2020. 8. 31.