전체

/save의 post요청을 처리하다가 오류가 생겼다. 처음에는 리다이렉션의 문법 오류인줄 알았는데 원인은 따로 있었다. java.io.IOException: java.nio.file.NoSuchFileException: C:\springboot_img\1724750433697오류는 위와 같은데 파일이 첨부되었을 때 번호를 부여하고 저장하는 코드가 실행되었다.파일을 첨부하지 않았는데 파일이 첨부되었을 때의 로직이 실행된 것이다.db를 확인해보니 파일을 첨부하지 않는 파일들도 file_attatched가 1로 저장되어 있었다. dto를 출력해보니 boardDTO = BoardDTO(id=null, boardWriter=ㅎㅎ, boardPass=ㅎㅎ, boardTitle=ㅎㅎ, boardContents=ㅎㅎ,..
* 본 게시글은 ChatGPT를 이용하여 작성한 글입니다. 질문시간복잡도에 대해 공부하고 있는데, 혹시 이거 외우는 팁같은거 있어? 예를들어 for문2개면 n^2이고 이진탐색은 logn인건 아는데 nlogn은 어떤 구조여야 하는지 모르겠어. 답변시간 복잡도를 잘 이해하고 외우기 위한 몇 가지 팁과 예시를 제공하겠습니다. 이 정보를 통해 알고리즘을 분석할 때 직관적으로 시간 복잡도를 유추하는 능력을 기를 수 있습니다. ### 1. **기본 시간 복잡도 공식** - **O(1)**: 상수 시간, 입력 크기와 무관하게 일정한 시간이 걸림.   - 예시: 배열에서 특정 인덱스 접근, 변수 할당.    - **O(log n)**: 로그 시간, 일반적으로 탐색과 관련됨.   - 예시: 이진 탐색, 로그 시간 탐색 ..
· CS/BAEKJOON
2차원 배열 list[N][2]을 선언하여 첫번째 자리에는 x좌표를, 두번째 자리에는 y좌표를 넣는다. 이후 list를 Arrays.sort()를 통해 정렬하는데 Arrays.sort의 규칙은 다음과 같다. 1. x좌표(list[i][0])를 비교해서 오름차순으로 정렬한다. > s1[0] - s2[0] 반환 2. 만약 x좌표가 같다면 y좌표를 비교해서 오름차순으로 정렬한다. > s1[1] - s2[1] 반환 전체코드는 다음과 같다. (람다식을 이용했다.) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public s..
1. 나눗셈을 이용하는 방법 숫자을 정수형(int)으로 정의하면 나눗셈 연산을 할 때 소숫점 부분이 버려집니다. 이를 이용하여 10으로 나눠가며 마지막 자리가 하나씩 사라지게 할 수 있습니다. ex) 13579 -> 1357 -> 135 -> 13 -> 1 -> 0 int N = 13579; int digit = 0; while(N > 0) { N = N/10; //13579>1357>135... digit++; //자릿수 1씩 더하기 } System.out.println(digit); 2. 문자열 변환 후 문자열의 길이를 재는 법 각각의 자릿수의 숫자들을 고려하지 않아도 되는 상황이므로 숫자를 문자열 취급하여 자릿수를 계산할 수도 있습니다. 아래 예시코드는 정수형에서 문자열로 형변환 한 후 문자열의 길..
· CS/BAEKJOON
현재 난항을 겪고 있는 부분은 다음과 같다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { //input BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] str = br.readLine().split(" "); //output System.out.println(str.length); } } 주로 틀리는 반례인 공백만 입력했을 때도 0으로 잘 뜨는데..
요즘 백엔드 스터디에 가입하고 싶어서 여러 사이트에서 모집 공고를 살펴보고 있는데, 대부분의 공고들이 대학생들이 아니라 현업자분들의 스터디였다. 그래서인지 처음 보는 전문용어들이 많이 보였는데 일단 거기서 큰 벽이 느껴졌었고, 비전공자나 학생들 스터디에도 이러한 용어들이 나오는 만큼 새삼 알아야 할 것들이 많음을 알게 되었다. 그래서 내 마음속 허들을 줄이기 위해서 당분간 공고들을 보면서 거기 나오는 용어들을 공부해 보기로 했다. 이게 괜찮은 공부법인지는 해보면서 봐야겠지만 일단 목표도 생기고 당장 스터디 구하는데 도움도 될 수 있을테니 일석이조이지 않을까....? 일단 내가 본 공고들 중 그나마 간단해 보이는 공고를 하나를 보면, REST API, Microservices, Channel 방식 요렇게 ..
먼저 아래 코드를 보면 그냥 int형을 element로 정의하고 쓰는 모습을 볼 수 있다. typedef int element; typedef struct { element data[MAX_STACK_SIZE]; int top; } StackType; 이를 응용하면 data의 자료형을 복잡하게 할 수도 있는데, 아래 코드는 data의 자료형이 구조체인 경우다. data 배열을 살펴보면 대충 {8, "김유나"}, {10, "김철수"}, {22, "황민수"}... 와 같은 형태로 이루어졌을 것이다. typedef struct{ int age; char name[MAX_STRING]; }element; //typedef로 element라는 자료형 정의. 구조체 형태의 자료형이다. typedef struct {..
구조체를 처음 공부했을 때에는 포인터 자체에 허덕이느라 동적 할당이나 구조체 포인터같은 점들을 깊게 생각해보지 않았었는데, 다시 보니 엄청 어려운 개념이었다... 구글링해서 본 글들 중에 이해한 것들을 말로 정리하자면, 일단 구조체 포인터를 왜 사용하냐면 동적 할당을 통해 메모리 낭비를 막기 위함이다. 동적 할당은 기존의 정적 할당들과 달리 메모리 공간을 내가 커스텀해서 할당할 수 있다. 이를 통해 유연하게 메모리를 관리(절약)할 수 있다. 동적할당은 malloc, calloc, realloc 이렇게 3가지인데 realloc은 (새로 메모리를 할당하는 다른 동적할당들과 달리) 기존의 메모리를 재할당, calloc은 메모리 할당을 해체할 때 데이터를 초기화, malloc은 메모리 초기화는 안되지만 call..
kite_12
'분류 전체보기' 카테고리의 글 목록