목록분류 전체보기 (109)
행복을 담는 블로그
EOF란 무엇인가?End of File의 약자로, 데이터 소스로부터 더이상 읽을 데이터가 없다는 내용이다.EOF 사용 방법 2가지Scanner와 BufferedReader 두 가지의 방법이 존재한다.이 문제를 연습해볼 수 있는 대표적인 문제가 바로 BOJ10951(A + B - 4)와 BOJ10952(A + B - 5) 문제가 있다.Scanner 클래스마지막 입력이 들어오지 않을 때까지 입력 받기: hasNext() 메소드 사용하기: 입력된 다음 토큰이 있다면 true를 반환하고, 그렇지 않을 경우 false를 반환한다.Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int A = sc.nextInt(); ..
시간 복잡도 (Time Complexity)?: 프로그램을 실행하는데 실제로 시간이 얼마나 걸리느냐?를 나타내는 척도를 의미한다.시간을 측정하는 2가지 방법실제 소요되는 시간을 측정 : 컴퓨터의 프로그램이 시작하는 시간 ~ 끝나는 시간까지 차이 비교❗️문제점 : 컴퓨터 CPU의 성능에 따라 실제 실행되는 시간이 달라지기 때문에, 같은 코드로 짠 프로그램이라도 실행 시간이 달라질 수 있다.실행되는 명령문의 개수를 계산 : 프로그램 내에서 실행되는 명령문의 수로 시간이 걸리는 정도를 알아본다.❗️문제점 : 프로그램이 복잡해질수록 명령어가 많아지므로, 현실적으로 확인하기 어렵다.💡 시간 복잡도란?"입력 크기에 따라 어떠한 알고리즘이 실행되는 데 걸리는 시간"주로 로직의 반복 횟수를 중점으로 처리되며, 보통..
백준 문제를 풀다가 어려운 문제가 전혀 아닌데 왜 정답이 아니지 라고 생각하다 데이터 타입 크기의 중요성에 대해서 알게 되었다.문제를 보면 N 과 M을 각각 정수로 값을 입력 받고, 이후에 그 차이를 구하라는 문제였다. 우선 N과 M을 Scanner로 정수를 입력 받는다.Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int M = sc.nextInt();이후 Math.abs() 메서드를 활용하여 절대값을 구해서 그대로 출력만 하면 되는데, 계속 정답이 아니라고 떴다. import java.util.Scanner;public class Main { public static void main(String[] args) { Sca..
백준 / SWEA 알고리즘 문제 풀 때, 입력값 받는 방법프로그래머스로 문제를 풀 때와 다르게, 백준이나 SWEA를 통해 알고리즘 문제를 풀 경우, input 값을 직접 입력하고 받아와서 문제를 풀어야 하는 형태로 이루어져 있다.java를 처음 배우는 입장에서 처음 알고리즘 문제를 풀고자 했을 때 이 부분부터 굉장히 막막해서 진도가 안 나갔다는...Scanner를 먼저 import를 해와한다.Scanner sc = new Scanner(System.in);그 다음 값을 입력 받고 싶을 때, 다음과 같이 Scanner로 부터 변수 형태에 맞게 값을 입력할 수 있다. 1. 정수를 입력 받을 때는 nextInt() 를 사용한다.int N = sc.nextInt(); 2. 문자열 입력next() v.s. n..
Next.js에서 폰트 적용하는 방법우선 Next.js에서 font를 적용하는 방법으로는 google font를 적용하는 방법과 font 파일을 다운받아서 직접 localFont로 적용하는 방법이 있다.그 중에서 이번엔 localFont를 직접 적용하는 방법을 시도해보았다. 1. 폰트 다운로드하기우선 public 폴더 > fonts 폴더 안에 다운로드 받은 폰트 파일을 저장하였다. 2. Next.js에 localFont() 적용하기이후 fonts.ts 파일을 만들고 next/font/local로 부터 localFont를 import 해와서 내가 저장한 폰트를 종류별로 저장한다.import localFont from "next/font/local";export const hakgyoansim = local..
오랜만에 알고리즘 문제 풀다가 그새 다 까먹어 버린 sort 함수 다시 정리하기.✅ sort 문법: 배열의 요소를 정렬할 때 사용하는 문법const arr = [3,1,2];array.sort(); // [1,2,3]sort의 기본 특징1️⃣ 배열 그 자체가 변환2️⃣ 정렬된 배열을 반환sort의 기본 원리: sort 비교 함수의 작동 방식▶️ sort 함수 내부에는 비교함수가 들어간다!Array.prototype.sort()array.sort([compareFunction])매개변수compareFuntion : optional 정렬 순서를 정의하는 함수. 생략하면 배열은 각 요소의 문자열 변환에 따라 유니코드 값에 따라 정렬반환 값 정렬한 배열. 배열이 정렬되는 것. 복사 X MDN 공식문서 참고❓ s..
🚨 문제 발생build 시 위 이미지와 같이 어떠한 에러인지 정확하게 보여주지 않고, 모든 page에서 build error가 발생하였습니다. 🛠️ 문제 원인 분석소거법으로 파일과 코드를 하나하나 비활성화 하며 문제 원인 탐색 후 찾아낸 문제의 코드들을 바탕으로 구글링을 통해 빌드 에러의 원인을 파악하였습니다. 🔥 문제 원인1. Next.js의 경우, build 시 모든 페이지를 사전에 렌더링(SSR) 하기 때문에 서버에서 컴포넌트를 HTML 형태로 렌더링 진행합니다.하지만, 이 시점에서 Session storage 나 window 등 client 전용 객체를 참조하여 이 값을 사용하고 있던 모든 페이지에서 오류가 발생하였습니다. (* 서버에는 window나 document 같은 객체가 존재하지 않..
zustand에 isTeacher 값을 넣어서 상태를 유지 시켰는데, 새로고침 시 다시 제자리로 돌아옴…🥲 시도 1. zustand persist를 이용해서 isTeacher 값을 localStorage에 저장한다. 수강생↔강사 전환 버튼 시, isTeacher 값이 localStorage에서 바뀌는 것을 확인할 수 있다. import { create } from 'zustand'; import { persist } from 'zustand/middleware'; interface UserRoleState { isTeacher: boolean | null; setIsTeacher: (value: boolean) => void; } export const useUserRoleStore = create( p..