코딩 도구(379)
-
C++에서 endl vs \n 성능 차이 알아보기
C++에서 endl vs \n 성능 차이어느날 처럼 코테 문제를 풀다가 예전에 코테에서는 절대 endl 을 쓰지 마라 라는 말이 기억이나서 출력 부분에서 아무것도 없이 vs \n vs endl 이렇게 출력 시간을 비교해보았는데 시간 차이가 났다. 위에서 부터 endl, \n, x 순서이다. 특히 코딩 테스트나 대량의 데이터를 출력할 때 endl과 \n의 차이가 실행 속도에 큰 영향을 줄 수 있다고 해서 한번 알아보았다. endl과 \n의 차이C++에서 줄바꿈을 출력하는 방법은 대표적으로 다음 두 가지가 있다:std::endl: 줄바꿈(\n)을 수행한 후, 출력 버퍼를 즉시 비운다(flush).'\n': 단순히 줄바꿈을 수행하며, 출력 버퍼를 유지한다.즉, std::endl은 줄바꿈 후 강제로 버퍼를..
2025.02.12 -
백준 6593 c++ 상범빌딩 (정육면체)
백준 6593 - 상범빌딩문제https://www.acmicpc.net/problem/6593 답안 코드 : #include #define FIO ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);using namespace std;int L, R, C;char board[32][32][32];int dist[32][32][32];int dl[6] = {1, -1, 0, 0, 0, 0};int dr[6] = {0, 0, 1, -1, 0, 0};int dc[6] = {0, 0, 0, 0, 1, -1};int main(){ FIO; while (true) { cin >> L >> R >> C; if (L == 0 && R ==..
2025.02.11 -
[Spring] 객체 지향 설계와 스프링 (SOLID)
좋은 객체 지향 설계의 5가지 원칙 (SOLID)김영한님의 "스프링 핵심 원리 - 기본편"을 수강하고 정리했습니다. 1. SOLID 원칙이란?SOLID 원칙은 클린 코드의 창시자로 유명한 로버트 마틴(Robert C. Martin)이 정리한 좋은 객체 지향 설계의 5가지 원칙이다. 이 원칙을 따르면 유지보수성과 확장성이 뛰어난 코드를 작성할 수 있다.SOLID는 다음과 같은 다섯 가지 원칙의 약어다.SRP (Single Responsibility Principle): 단일 책임 원칙OCP (Open/Closed Principle): 개방-폐쇄 원칙LSP (Liskov Substitution Principle): 리스코프 치환 원칙ISP (Interface Segregation Principle): 인터페..
2025.02.10 -
[코딩테스트] BFS에서 배열 크기를 +@로 설정하는 이유
BFS에서 배열 크기를 +@로 설정하는 이유BFS(너비 우선 탐색)를 구현할 때, 배열 크기를 문제에서 주어진 크기보다 +@를 해서 선언하는 경우가 많다. 예를 들어, 문제가 M=100, N=100이라고 하면, 배열을 board[102][102]로 설정하는 방식이다. 1. 왜 배열 크기를 +2로 설정하는가?배열 크기를 +2로 설정하는 가장 큰 이유는 배열의 경계를 벗어나는 오류를 방지하기 위해서다. BFS/DFS를 구현할 때, 보통 상하좌우 네 방향으로 탐색하는데, 이때 탐색 과정에서 배열 범위를 벗어날 가능성이 있다.예제 코드 (BFS 범위 체크)if (nx = M || ny = N) continue; // 범위를 벗어나면 스킵위 코드는 (nx, ny)가 배열의 범위를 벗어났을 경우, 즉 nx =..
2025.02.09 -
[IntelliJ] MacOS 단축키
이 글에서는 MacOS 환경에서 스프링 개발을 비롯한 다양한 작업에 활용할 수 있는 IntelliJ의 필수 단축키를 정리했습니다. 일반 작업 단축키Command + N: 클래스, 인터페이스, 파일, 패키지 등 새 파일 생성Command + Shift + N: 파일 검색 및 열기Command + O: 클래스 검색 및 열기Command + Shift + O: 심볼 검색 (메서드, 변수 등)Command + E: 최근 열었던 파일 목록 보기Command + Shift + E: 최근 편집한 파일 목록 보기Command + W: 현재 활성 창 닫기Command + P: 메서드 호출 시 매개변수 정보 표시Command + F: 현재 파일 내 텍스트 검색Command + R: 현재 파일 내 텍스트 치환Command ..
2025.02.07 -
[Spring] Spring Boot DevTools로 HTML 파일 수정 시 서버 재시작 없이 반영하기
Spring Boot DevTools로 HTML 파일 수정 시 서버 재시작 없이 반영하기Spring Boot 애플리케이션을 개발할 때, spring-boot-devtools 라이브러리를 활용하면 서버를 재시작하지 않고도 HTML 파일 변경사항을 실시간으로 반영할 수 있습니다. 이 글에서는 IntelliJ 환경에서 이를 설정하고 사용하는 방법을 소개합니다.1. spring-boot-devtools 추가하기먼저 build.gradle 파일에 spring-boot-devtools 의존성을 추가합니다.implementation 'org.springframework.boot:spring-boot-devtools'이 라이브러리는 개발 단계에서만 사용되므로, production 환경에서는 자동으로 제외됩니다.2. I..
2025.02.05 -
[Git] 원격 저장소 푸시 거부 문제 해결
Git 원격 저장소 푸시 거부 문제 해결기개발을 하다 보면 Git을 사용하면서 원격 저장소에 코드를 푸시(push)할 때 문제가 발생할 수 있습니다. 이번 글에서는 제가 겪은 'Git push 거부' 문제와 그 원인, 그리고 해결 방법을 정리해보았습니다.문제 상황로컬에서 git init으로 새 프로젝트를 초기화하고, GitHub에 원격 저장소를 생성한 후 다음과 같이 커밋하고 푸시를 시도했습니다.git remote add origin https://github.com/mk-isos/springgit add .git commit -m "Initial commit"git push -u origin main하지만 다음과 같은 에러 메시지가 발생했습니다:! [rejected] main -> main (fetch..
2025.02.04 -
[Git] VS Code와 IntelliJ에서 .gitignore 설정 및 불필요한 파일 제거
.gitignore 설정법 (VS Code & IntelliJ)안녕하세요! 최근 VS Code와 IntelliJ에서 **C++**과 Java 프로젝트를 진행하면서, 불필요한 파일 (.DS_Store, .class, .dSYM)들이 GitHub에 올라가는 문제를 겪었습니다.1. VS Code에서 .gitignore 설정하기 (C++ 프로젝트 예시).gitignore 파일 생성VS Code에서 프로젝트 루트 폴더를 열고, 터미널을 실행합니다.터미널에 다음 명령어를 입력합니다:touch .gitignore📌 C++ 프로젝트에 적합한 .gitignore 예제# C++ 빌드 결과물*.o*.out*.exe*.a*.lib*.dll*.so*.dylib# 디버깅 관련 파일*.dSYM/*.pdb# VS Code 설정 파..
2025.02.03 -
[VScode] Mac에서 Prettier 작동 오류 해결하기
VS Code Mac에서 Prettier 작동 오류 해결하기최근 Mac에서 VS Code를 사용하면서 Prettier가 정상적으로 작동하지 않는 문제가 발생했습니다. 문제를 해결하기 위해 여러 단계를 시도했고, 그 과정을 정리해보았습니다. 🚨 문제 상황: VS Code Mac에서 Prettier 작동안됨코드를 저장해도 자동으로 포맷이 되지 않음npx prettier --check .을 실행했을 때 여러 경고 발생1. Prettier를 기본 포맷터로 설정하기VS Code 설정에서 Prettier를 기본 포맷터로 설정하는 방법:Cmd + , (설정 열기)default formatter 검색Editor: Default Formatter에서 Prettier를 선택파일 저장 시 자동 포맷 활성화:Cmd + ,로..
2025.02.02 -
[Git] GitHub 502 오류 해결 방법 (Git Push 오류)
오늘 GitHub에 코드를 푸시하는 과정에서 fatal: unable to access 'https://github.com/...': The requested URL returned error: 502 오류를 경험했습니다. 이 글에서는 해당 오류의 원인과 해결 과정을 공유합니다.오류 상황: 터미널에서 아래와 같은 명령어를 실행했습니다:git add .git commit -m "250201 feat: ~~~~"git push origin main하지만 다음과 같은 오류 메시지가 나타났습니다:fatal: unable to access 'https://github.com/mk-isos/JavaStudy.git/': The requested URL returned error: 502오류 원인: 502 오류(Ba..
2025.02.01