inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

완전탐색 1090번 시간초과

미해결

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

예제 문제는 잘 풀리는데 백준에 제출하니까 시간초과가 뜹니다 강의 자료랑 큰 차이는 없어 보이는데 어느 부분을 고쳐야 시간 안에 계산 가능할까요? #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char **argv) { int n; int minX, minY, maxX, maxY; cin >> n; int arr[n][2]; for(int i=0; i<n; i++){ cin >> arr[i][0] >> arr[i][1]; } minX = arr[0][0]; maxX = arr[0][0]; minY = arr[0][1]; maxY = arr[0][1]; for(int i=1; i<n; i++){ if(arr[i][0]>maxX){ maxX = arr[i][0]; } else if(arr[i][0]<minX){ minX = arr[i][0]; } if(arr[i][1]>maxY){ maxY = arr[i][1]; } else if(arr[i][1]<minY){ minY = arr[i][1]; } } int arr_answer[n]; int arr_dis[n]; for(int i=minY; i<=maxY; i++){ for(int j=minX; j<= maxX; j++){ for(int l=0; l<n; l++){ int subY= 0, subX=0; subY = i-arr[l][1]; subX = j-arr[l][0]; arr_dis[l] = abs(subX) + abs(subY); } int sum = 0; for(int k=0; k<n; k++){ sum+=arr_dis[k]; if(i==minY && j ==minX){ arr_answer[k] =sum; } else if(sum < arr_answer[k]){ arr_answer[k] = sum; } } } } for(int i=0; i<n; i++){ cout << arr_answer[i] << " "; } return 0; }

  • python
  • 코딩-테스트
  • 알고리즘
yongyong213 댓글 2 좋아요 1 조회수 616

c언어에서 바이너리 표현

미해결

홍정모의 따라하며 배우는 C언어

강의 3분08초를 보면 c++같은 경우에는 바이너리 넘버(2진수표현법)를 코딩할 때 직접 사용할 수 있지만 c언어같은 경우 불가능하다고 하셨는데 숫자앞에 0b를 붙여서 표현가능하지 않나요? ex) 0b00000001 이렇게 가능하지 않나요? 제가 다르게 이해한 걸까요? 감사합니다.

  • c
CJS 댓글 1 좋아요 1 조회수 595

동시성 부분 추가 공부하면서 헷갈리는 부분 질문 드립니다.

해결됨

넓고 얕게 외워서 컴공 전공자 되기

안녕하세요 선생님! 동시성과 병렬성 관련해 기초가 약해 해당 강의를 들으면서 OS 부족한 부분을 많이 알게되어 도움이 많이되고 있습니다. 다름이 아니라 해당 강좌 범위는 벗어나지만.. 구글링해도 명확하게 해결되지 않아 질문 드립니다. 동시성을 구현하는 방법으로 멀티쓰레드 나 코루틴 방법으로 구현을 할 수있고 멀티쓰레드 방법에서 쓰레드 전환 간 context switch가 많기 때문에 오버헤드도 많아 Coroutine 방법을 많이 쓰고 또한 유저가 이벤트루프(스케쥴링)을 app에서 관리한다는 측면에서 디버그가 유용하다 정도로 이해하고 있습니다. 많은 블로그에서 멀티쓰레드보다 코루틴을 소개하면서 동시성 구현시 코루틴을 더 상위(혹은 좋은) 방법으로 서술이 많이 되어 있더라구요. I/O작업이 빈번할 경우 코루틴이 더 유리하다는 이해가 됩니다. 싱글스레드 + async 싱글스레드 멀티스레드 + async 멀티스레드 2개의 구현방법이 레이어가 다르다(thread와 task)보니 4가지 경우의 수를 적용할 수 있는데 실제 동시성을 적용해야되는 상황이면 어떻게 판단하고 최적의 구현방법(4가지 중 선택)을 적용할 수 있을까요? (파이썬 스택을 쓰고 있으며 GIL도 이해하고 있는 상태입니다.) 다시한번 해당 강의와 조금 벗어난 질문드려 죄송합니다. ( _ _ )

  • python
  • 동시성
  • 병렬성
권설민 댓글 1 좋아요 0 조회수 431

이중 포인터와 const

미해결

홍정모의 따라하며 배우는 C언어

안녕하세요. 이중포인터에 const를 어느 위치에 붙이냐에 따라 고정되는 값에서 차이가 생기는데, 제가 그 차이를 제대로 이해한 것이 맞는지 몰라 질문드립니다. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int x = 20; int* p1 = &x; const int* const * pp2 = &p1; const int** const pp2 = &p1; return 0; } 이런 코드가 있다고 할 때, const int* const * pp2 = &p1; 코드에서 고정된 값은 pp2가 한 번 indirection 한 주소값, 즉 p1자체의 값과 x의 값이다. const int** const pp2 = &p1; 코드에서 고정된 값은 pp2 자체의 주소값과 x의 값이다. 이렇게 이해했는데, 맞을까요?? 늘 친절한 답변 감사합니다.

  • c
이재완 댓글 1 좋아요 1 조회수 390

\t 간격 차이

미해결

홍정모의 따라하며 배우는 C언어

#include <stdio.h> #include <stdlib.h> struct kid { char name[100]; int height; }; int compare(const void* first, const void* second) { if (((struct kid*)first)->height > ((struct kid*)second)->height) return 1; else if (((struct kid*)first)->height < ((struct kid*)second)->height) return -1; else return 0; } int main() { struct kid my_friends[] = { "Jack Jack", 40, "Geenie", 300, "Aladdin", 170, "Piona", 150 }; const int n = sizeof(my_friends) / sizeof(struct kid); qsort(my_friends, n, sizeof(struct kid), compare); for (int i = 0; i < n; i++) printf("%s \t%d\n", my_friends[i].name, my_friends[i].height); return 0; } 위는 저의 코드입니다. 강의 5분 45초를 보면 printf()함수에 \t를 통해서 간격을 조정해주는데 교수님의 경우 숫자가 같은 위치에서 시작하는데 저는 왜 40 혼자 멀리 떨어져있을까요? 또 \t를 검색해보면 Tab키와 같이 일정한 간격을 띄움 라고 나와있는데 일정한 간격을 어디를 기준으로 띄우는 건가요? "Jack Jack"의 경우 공백 포함 9글자고 "Geenie의 경우 6글자인데 강의에서 "40", "300"은 같은 위치에서 시작함에 의문이 생깁니다.

  • c
CJS 댓글 1 좋아요 1 조회수 1164

디버그 >창>메모리가 안떠요

미해결

홍정모의 따라하며 배우는 C언어

디버깅 > 일반 에서 주소 수준 디버깅 사용 을 선택했는데도 디버그 >창 > 메모리가 있어야 하는데 메모리가 안뜨는데 왜 이런 건가요?

  • c
김연후 댓글 1 좋아요 1 조회수 729

크롤링 기사 기간 설정

해결됨

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

안녕하세요 뉴스크롤링에서 크롤링 하고자 하는 뉴스의 기간을 정해주려면 response = requests.get(" https://search.naver.com/search.naver?where=news&sm=tab_jum&query=검색어 ") 위 코드의 " " 안에 뉴스기간을 옵션으로 설정하여 검색한 페이지의 URL을 긁어서 넣어주면 되는걸지요? 감사합니다.

  • python
  • 웹-크롤링
cherrykim90 댓글 2 좋아요 0 조회수 1204

9.15 쓰레기값 관련해서

미해결

홍정모의 따라하며 배우는 C언어

제가 알기로 값을 따로 초기화 안할경우 무작위의 쓰레기값이 들어가는게 아니라, 그냥 16진수 cccccccc 가 들어가는걸로 알고 있습니다.

  • c
이제운 댓글 2 좋아요 1 조회수 778

자료구조

해결됨

독하게 되새기는 C 프로그래밍

연결리스트를 보면서 만든적은 있으나 머리속에서 참고자 없이 만든적은 없네요 구매는 했는데 자료구조 수업 듣고 와야겠네요. 혹시 수업이 따로 있을까요?

  • c
  • kernel
  • secure-coding
ㅇㄴㄹ(ㅇㅀ) 댓글 1 좋아요 0 조회수 359

실습 중에 혹시 예외 발생하신 분들을 위해

해결됨

독하게 되새기는 C 프로그래밍

Enter, Leave로 동기화 후 메인 쓰레드 루프 탈출을 위해 q를 입력했을 때 간헐적으로 아래와 같은 에러가 발생하였습니다 요거.. 선생님께 여쭤보려다가 문득 원인을 찾았습니다 혹시 저와 같은 에러를 겪으신 분들을 위해 정리를 하자면 아래와 같습니다 메인 쓰레드 루프 탈출 까지는 정상적으로 수행됩니다 다만, DeleteCriticalSection 함수 호출 후 return 코드를 호출하기 전 찰나의 순간에 set 또는 reset 워커 쓰레드에서 EnterCriticalSection을 호출하여 예외가 발생합니다 즉, DeleteCriticalSection과 return의 코드 호출은 원자적이지 않기 때문에 두 함수가 수행되는 중간에 다른 워커 쓰레드에서 EnterCriticalSection 함수를 호출하는 경우인데요 이는, Delete돼서 존재하지 않는 임계영역에 Enter를 시도하기 때문입니다

  • c
  • kernel
  • secure-coding
우성 댓글 1 좋아요 3 조회수 344

11분 40초 프로그램에 저장

미해결

홍정모의 따라하며 배우는 C언어

피피티에서 int i = 34567; 이 왜 10000111 | 00000111로 저장되는지 궁금합니다

  • c
yeris20317 댓글 1 좋아요 1 조회수 241

visual studio code shell 설정

미해결

홍정모의 따라하며 배우는 C언어

visual studio code 에서 Shell 검색을 하였을 때 다음과 같이 shell관련 항목이 나오지 않습니다. 사전에 mingw도 설치하였고 path도 설정하였습니다. 해결 방법을 알고 싶습니다.

  • c
정은규 댓글 1 좋아요 1 조회수 642

안녕하세요 선생님~ 몇 가지 여쭤볼 게 있습니다

해결됨

독하게 되새기는 C 프로그래밍

항상 좋은 강의 감사합니다 ~!! 두 가지 정도 여쭤볼 게 있습니다 실시간 감시 엔진 File System과 Driver 사이 계층에 실시간 감시 엔진을 넣을 수 있는 공간이 있다고 하셨는데 그렇다면 그런 엔진은 V3, 알약 같은 백신 프로그램에서 제공해주나요? 아니면 OS단에서 기본적으로 제공해주나요? 만약 OS단에서 제공해준다면 감시 결과에 접근할 수 있는 인터페이스를 열어주고 유저모드의 백신 프로그램이 그 인터페이스로 감시 결과를 가져오나요? 삭제 삭제 시 FAT에서 Delete 필드에 마킹되는 것은 이해하였습니다 그런데 굳이 파일명의 첫 글자 까지도 다른 글자로 변경하는 이유는 무엇인가요? 강의 잘 보고 있습니다 감사합니다 ~

  • c
우성 댓글 1 좋아요 0 조회수 368

파일 생성이 되지 않습니다

미해결

HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌

강의 그대로 세팅 다 하고 난 후 강의처럼 OK버튼이 없어 오른쪽 상단의 GENERATE CODE를 눌렀습니다. 이런 메세지 창이 뜨는데 어떻게 해야하나요??GENERATE CODE 버튼을 누르는게 아닌가요?

  • c
  • iot
  • 드론-개발
훈훈한 치타 댓글 1 좋아요 0 조회수 350

구조체의 복사에서 멤버가 문자열인경우

미해결

홍정모의 따라하며 배우는 C언어

#include <stdio.h> #include <stdlib.h> struct data { int a; char str[20]; }; int main(void) { struct data data1 = { 1,"hello" }; struct data data2 = data1; printf("%s", data2.str); return 0; } 강의 7:40를 보면 구조체 변수에 다른 구조체 변수를 대입하면 그 안의 값이 똑같이 복사가 가능한데, 문자열도 복사가 가능한지 궁금해서 위처럼 실행시켜보니까 가능하네요. 이것은 마치 data1.str = "hello"; data2.str = data1.str; 인 것 같은데. 제가 알기론 문자열은 대입을 통해서 복사 하는 것이 불가능한 것으로 알고 있는 구조체에서는 가능한건가요? 미흡한 질문 죄송합니다.

  • c
CJS 댓글 1 좋아요 1 조회수 549

파일이 없습니다.

미해결

HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌

소스 파일이 없어요

  • c
  • iot
  • 드론-개발
댓글 1 좋아요 0 조회수 372

사용 프로그램이 맞나요?

미해결

HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌

STM32f407ve를 검색했는데 아무것도 안떠요ㅠㅠㅠ

  • c
  • iot
  • 드론-개발
훈훈한 치타 댓글 4 좋아요 0 조회수 401

python pandas dataframe을 엑셀 vlookup처럼 활용하고 싶은데 쉽지 않습니다. 도와주세요

미해결

하고 싶은 것 일부 주문이 서비스 유형: 픽업임에도 배달메뉴코드로 생성되어 이를 찾고 싶습니다. (배달메뉴와 픽업메뉴 코드는 서로 다름) 엑셀 vookup을 사용해서 상품코드를 배달 메뉴 테이블에서 검색하고, 검색되지 않으면 오주문으로 판단하는 코드를 구현했습니다. 같은 프로그램을 파이썬을 통해 구현해보고 싶은데, 다른 dataframe에 없는 값을 찾아 행을 추가하는 과정이 어려워 조언을 구하고 싶습니다. 파이썬 코드 df_pickup = 픽업 주문내역 데이터 프레임 delivery_menu_code = df_delivery_menu["상품코드"] df_misorder = pd.DataFrame() # 픽업 주문내역에서 상품코드를 꺼내 해당 상품코드가 배달 메뉴 코드에 포함되어 있는지 확인 # 만약에 코드가 없으면 해당 row를 df_misorder에 추가 for idx, row in df_pickup.iterrows(): misorder = df_delivery_menu[delivery_menu_code.str.contains(row["상품코드"], na = False)] if len(misorder) != 0: df_misorder.concat(row) else: pass # 어떻게 추가해도 계속 0개로 나와서, 도와주시면 감사드리겠습니다! len(df_misorder)

  • python
  • pandas
  • excel
  • vlookup
최경완 댓글 1 좋아요 1 조회수 1020

자동 생성되는 괄호 넘어가는 단축키

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

중괄호 등을 통해서 코드를 작성할 때 중괄호가 [] 이렇게 두개 자동으로 생성되는데요. 이외에도 '' 등 두개씩 자동으로 만들어줘서 코드를 작성하는데는 편리한데 'LEE' 등 코드를 쓰고 EE에서 '를 넘어 가기 위해 방향키를 눌러줘야 하는 불편함이 있습니다. 혹시 빠르게 작성하기 위해 단투키 같은게 별도로 있을지 문의드립니다

  • python
9시30분출근 댓글 1 좋아요 0 조회수 581

콘솔창에서 한글이 깨지는 이유

미해결

홍정모의 따라하며 배우는 C언어

#include <stdio.h> #include <windows.h> int main(int argc, char* argv[]) { int ch; FILE* fr, * fw; //const UINT default_cp = GetConsoleOutputCP(); //printf("%u\n", default_cp); const char* in_filename = "원본.txt"; const char* out_filename = "사본.txt"; unsigned long count = 0; if ((fr = fopen(in_filename, "r")) == NULL) { printf("can't open %s\n", in_filename); exit(EXIT_FAILURE); } if ((fw = fopen(out_filename, "w")) == NULL) { printf("can't open %s\n", out_filename); exit(EXIT_FAILURE); } //SetConsoleOutputCP(CP_UTF8); while ((ch = fgetc(fr)) != EOF) { fputc(ch, stdout); fputc(ch, fw); count++; } fclose(fr); fclose(fw); //SetConsoleOutputCP(default_cp); printf("file %s has %lu characters\n", in_filename, count); printf("copied to %s\n", out_filename); printf("한글 출력 확인"); return 0; } 제가 제대로 이해한건지 헷갈리네요... 강의 2:45 콘솔창에서 한글이 깨지는 이유는 텍스트 파일의 인코딩 방식은 UTF8(== 인코딩방식 == 코드페이지)인데 콘솔창의 인코딩 방식과 다르기 때문이 맞나요? 원본.txt에 담겨있는 데이터는 컴퓨터 내부에서 바이너리로 저장되어있습니다. (프로그램을 통해 인코딩을 해도 이 바이너리 데이터 자체는 바뀌지않음) 이 바이너리 데이터를 메모장은 UTF8 인코딩 방식을 통해서 인코딩 한 후 출력하기 때문에 메모장에서는 한글이 제대로 출력 되는 것이고, 프로그램은 이 바이너리 데이터를 그대로 읽어왔지만 콘솔창의 인코딩 방식은 UTF8이 아니기 때문에 인코딩 과정에서 한글은 제대로 인코딩이 안되고 그렇기에 한글은 깨지는것. 그러므로 SetConsoleOutputCP(CP_UTF8); 를 통해 콘솔창의 인코딩방식을 UTF8로 바꾸어 준 후 실행하면 한글이 제대로 출력 됨. 마지막으로 복사한 사본.txt파일의 데이터는 원본.txt에 담겨있는 바이너리 데이터 그 자체를 그대로 복사한 것이고 그것을 메모장에서 열면 인코딩방식이 일치하기에 사본.txt파일은 한글이 깨지지 않는다. 맞을까요? 감사합니다!!!

  • c
CJS 댓글 1 좋아요 1 조회수 1847

인기 태그

인프런 TOP Writers

주간 인기글