묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
케이스 7번의 this.name = name; 구문질문
7분2초에 케이스 7에 this.name = name 은 child 객체를 의미하는건가요? 부모의 클래스라도?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
java 기출변형 22분
22분에 나오는 코드의 실행 순서에 질문이 있습니다.자식 클래스 생성자에 this나 super로 생성자가 적혀있지 않은 경우 자바에서 자동으로 super()를 만들어준다고 알고 있는데 맞나요? 그럼 Chi()에서 this(20)으로 Chi(20)이 실행된 다음, 이 생성자에는 따로 this나 super로 생성자가 적혀있지 않기 때문에 super()로 Par() 생성자가 호출된다고 이해하면 될까요?질문을 정리하자면, 코드의 정확한 실행 순서가Chi() -> Chi(int y) -> Par()인지,Chi() -> Par() -> Chi(int y)인지 알고 싶습니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
2025년 1회 기출 문제 1번 문제 질문
4분 58초에 for(i=0;i<4;++i){if(Data[i]>'c'){break;}이 문항에서 위에 나온 배열에 B A D E 가 존재하는데요 c 의 아스키코드는 99 로 인지한 상태로 풀고 나머지 배열에있는 값들은 각각 66 , 65 ,68 ,69 이렇게 해서 브레이크가 안걸리고 i가 3까지 나열한 뒤로 끝나는 것으로 인지했었습니다 그런데 영상 강의에선 D의 값에서 break가 걸린다고 들었는데 왜 그런건지 질문드립니다.
-
미해결홍정모의 따라하며 배우는 C언어
14.14 예제 질문
#define CRTSECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <conio.h>#define SLEN 101struct book{ char name[SLEN]; char author[SLEN];};void print_books(const struct book* books, int n);void write_books(const char* filename, const struct book* books, int n);struct book* read_books(const char* filename, int* n);int main(){ int temp; int n = 3; struct book* my_books = (struct book*)malloc(sizeof(struct book) * n); if (!my_books) { printf("Malloc failed"); exit(1); } my_books[0] = (struct book){ "The Great Gatsby", "F. Scott Fitzgerald" }; my_books[1] = (struct book){ "Hamlet", "William Shakespeare" }; my_books[2] = (struct book){ "The Odyssey", "Homer" }; print_books(my_books, n); printf("\nWriting to a file.\n"); write_books("books.txt", my_books, n); free(my_books); n = 0; printf("Done.\n"); printf("\nPress any key to read data from a file.\n\n"); temp = _getch(); my_books = read_books("books.txt", &n); print_books(my_books, n); free(my_books); n = 0; return 0;}void print_books(const struct book* books, int n){ for (int i = 0; i < n; ++i) { printf("Book %d : \"%s\" written by \"%s\"\n", i + 1, books[i].name, books[i].author); }}void write_books(const char* filename, const struct book* books, int n){ FILE* fw; if ((fw = fopen(filename, "w")) == NULL) { fprintf(stderr, "Can't open \"%s\" file.\n", filename); exit(EXIT_FAILURE); } fwrite(books, sizeof(struct book), n, fw); fclose(fw);}struct book* read_books(const char* filename, int* n){ FILE* fp; if ((fp = fopen(filename, "r")) == NULL) { fprintf(stderr, "Can't open \"%s\" file.\n", filename); exit(EXIT_FAILURE); } fseek(fp, 0, SEEK_END); long file_size = ftell(fp); rewind(fp); struct book* all_books; int si = file_size / sizeof(struct book); *n = si; all_books = (struct book*)malloc(sizeof(struct book) (n)); if (all_books == NULL) { printf("Failed"); return NULL; } fread(all_books, sizeof(struct book), *n, fp); fclose(fp); return all_books;}예제를 풀다보니 바이너리형식으로 추가,저장되는 코드로 만들어 버렸는데 이 경우에는 메모장에서 텍스트를 추가할 수 없으니 틀렸다고 보는게 맞겠죠?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
23:29 질문입니다
메인 클래스에서 parent.getA()를 출력하는데 부모와 자식클래스에 똑같이 getA() 함수가 있으면 오버라이딩으로 자식클래스를 호출하나요? parent.getA()로 직접적으로 부모클래스를 호출하더라도요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
22분 44초
22분 44초의 내용을 정리해보면 printf("%s", str); 라면 str 문자열 전체를 출력하는 것이고 printf("%c", *str);라면 str 문자열의 첫번째 문자를 출력하는 것 맞을까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
9번문제 Pdf수정요청
9번 문제 (30:40부분)에 pdf에는 main 함수가 없네요....수정 부탁드립니다 .
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
SELECT 문 조회시 Null 포함 여부
33:56 SELECT count(col2)FROM TABLEWHERE col1 in (2,3) or col2 in (3,5);에서 결과가 4인점은 이해가 됩니다.(count는 Null 포함 x)다만 오른쪽 아래 테이블이 헷갈리는 데, 만약 count(col2)가 아닌 col2만 출력하면 아래 처럼 나오는걸로 이해하고 있습니다. col2----Null6533강사님께서는 count에 해당하는 투플만 테이블만 표현하신건가요? 또 집계함수(sum, avg, max,min,count) 모두 Null은 포함하여 계산하지 않는다고 이해하면 될까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
32. 정적 변수, 정적 메서드 (static) v2
31:30 구간 강의부분에서max나 parseInt 같은 메서드들도 정적 메서드라고 하셨는데 그러면 보통 흔하게 나오는 println이나 print 메서드도 정적 메서드인가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
업캐스팅 관련 질문
16분 40초 마지막 업캐스팅 예제에서 메서드가 부모에는 없고 자식에만 있어서 오류가 난다고 하였는데 이 경우가 업캐스팅이라서 그런거죠?만약 업캐스팅 아니고 A a = new A(1)이였을 때는 문제가 없는건지 궁금합니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
실기대비 이론문제(v0.9) 오류수정문의
실기대비 이론문제(v0.9)파일 내용중에 스미싱설명부분이 스미싱이 아닌 스니핑으로 잘못설명되어있습니다. 수정부탁드려요.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
부모의 생성자
안녕하세요 강의 내용 중 9:22분에 문제 중에this.batteryCapacity = batteryCapacity; 문장은 아무런 역할을 안 하나요?해당 줄이 무슨 역할을 하는지 궁금합니다..!
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
43분 질문입니다
43분에서 궁금한점이있습니다. seen배열을 할당할때 처음에 다음 comp로 넘겨줄땐 다른seen(초기에 비어있는seen)을 넘겨주는게 아닌가요? 영상으로 보면 하나의seen으로 모든comp를 다루는걸로 보이는데 seen은 독립적이지않은건가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
4:35 포인터 질문입니다
배열이나 문자열은 선언할 때 부터 포인터 형식으로 선언되나요? 만약 a = "가나다" a가 가리키는 것은 "가"의 주소값이 되나요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
변수 오버라이딩
하이딩에 대해 이해가 가지 않아 업캐스팅과 오버라이딩까지 다시 개념을 정리하다가 헷갈려서 질문합니다. 메서드, static붙는변수나 메서드는 오버라이딩이 가능하고 static이 붙지 않는 변수는 오버라이딩이 불가능한가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
예상문제
혹시 요번년도 예상문제 20선 한번만 난이도 상으로 만들어주실 수 있나요... 봤던 것ㅂ만 풀어서 그런지 체감을 할 수가 없네요
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
26분 자식 this() 3단 체인
역순 호출시 child5(int) 에 int 값 1을 넣어서 출력해야 하는거 아닌가 하고요이미 3번에서 1을 대입 하면 더이상 안쓰는건가요?볼땐 알겠는데 뒤돌아보면 다시 리셋 되네요~ㅠㅠ
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
31. 업캐스팅 (부모 형태, 자식 생성자)
제가 제대로 이해한 것이 맞는지 헷갈려서 질문 드려요 ㅠ 부모 자식 클래스 관계에서 super()라는 명시적 호출이 생략되어 있는 거고, 상속 관계에서는 무조건 자식 생성자 생성하기 전에 부모 생성자부터 생성하는 건 이해했습니다.근데 그럼 상속 관계에서 명시적 호출 super()이 아닌, this()라고 선언 해놓았을 경우, 부모 생성자를 생성하지 않고 자식 생성자만 생성하는 건가요? 너무 헷갈리네요 ..
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
return
5:25초 구간에서 계산까지는 모두 혼자 정상적으로 진행했는데 궁금한 점은 temparr를 리턴 할 때 왜 intarr로 반환하는 건가요?
-
미해결C 프로그래밍 - 입문부터 게임 개발까지
8-8 연장전 / 소스코드 공유해드려요. 참고하세요!
#include <stdio.h> #include <stdlib.h> #include <time.h> // 10마리의 서로 다른 동물(각 카드 2장씩) // 사용자로부터 2개의 입력값을 받아서 -> 같은 동물 찾으면 카드 뒤집기 // 모든 동물 쌍을 찾으면 게임 종료 // 총 실패 횟수 알려주기 int arrayAnimal[4][5]; // 카드 지도 (20장의 카드) int checkAnimal[4][5]; // 뒤집혔는지 여부 확인 char *strAnimal[10]; void initAnimalArray(); void initAnimalName(); void shuffleAnimal(); int getEmptyPosition(); int conv_pos_x(int x); int conv_pos_y(int y); void printfAnimals(); void printQuestion(); int foundAllAnimals(); void printAlign(const char *str, int totalWidth); int getVisibleWidth(const char *str); int main(void) { srand(time(NULL)); initAnimalArray(); initAnimalName(); shuffleAnimal(); int failCount = 0; // 실패 횟수 while (1) { int select1 = 0; // 사용자가 선택한 처음 수 int select2 = 0; // 사용자가 선택한 두번째 수 printfAnimals(); // 동물 위치 출력 printQuestion(); // 문제 출력 (카드 지도) printf("뒤집을 카드를 2개 고르세요 : "); scanf("%d %d", &select1, &select2); if (select1 == select2) // 같은 카드 선택 시 무효 continue; // 좌표에 해당하는 카드를 뒤집어 보고 같은지 안같은지 확인 // 정수 좌표를 (x, y)로 변환 int firstSelect_x = conv_pos_x(select1); int firstSelect_y = conv_pos_y(select1); int secondSelect_x = conv_pos_x(select2); int secondSelect_y = conv_pos_y(select2); // 같은 동물인 경우 if ((checkAnimal[firstSelect_x][firstSelect_y] == 0 && checkAnimal[secondSelect_x][secondSelect_y] == 0) && (arrayAnimal[firstSelect_x][firstSelect_y] == arrayAnimal[secondSelect_x][secondSelect_y])) { printf("\n\n빙고! : %s 발견 \n\n", strAnimal[arrayAnimal[firstSelect_x][firstSelect_y]]); checkAnimal[firstSelect_x][firstSelect_y] = 1; checkAnimal[secondSelect_x][secondSelect_y] = 1; } // 다른 동물인 경우 else { printf("\n\n 땡!! (틀렸거나, 이미 뒤집힌 카드입니다)\n"); printf("%d : %s\n", select1, strAnimal[arrayAnimal[firstSelect_x][firstSelect_y]]); printf("%d : %s\n", select1, strAnimal[arrayAnimal[secondSelect_x][secondSelect_y]]); printf("\n\n"); failCount++; } // 모든 동물을 찾았는지 여부, 1 : 참, 0 : 거짓 if (foundAllAnimals() == 1) { printf("\n\n 축하합니다 ! 모든 동물을 다 찾았네요 \n"); printf("지금까지 총 %d 번 실수했습니다\n", failCount); break; } } return 0; } void initAnimalArray() { for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { arrayAnimal[i][j] = -1; } } } void initAnimalName() { strAnimal[0] = "원숭이"; strAnimal[1] = "하마"; strAnimal[2] = "강아지"; strAnimal[3] = "고양이"; strAnimal[4] = "돼지"; strAnimal[5] = "코끼리"; strAnimal[6] = "기린"; strAnimal[7] = "낙타"; strAnimal[8] = "타조"; strAnimal[9] = "호랑이"; } void shuffleAnimal() { // ☐ ☐ ☐ ☐ ☐ // ☐ ☐ ☐ ☐ ☐ // ☐ ☐ ☐ ☐ ☐ // ☐ ☐ ☐ ☐ ☐ for (int i = 0; i < 10; i++) { for (int j = 0; j < 2; j++) { int pos = getEmptyPosition(); int x = conv_pos_x(pos); int y = conv_pos_y(pos); arrayAnimal[x][y] = i; } } } // 좌표에서 빈 공간 찾기 int getEmptyPosition() { // ☐ ☐ ☐ ☐ ☐ 0 1 2 3 4 -> 0 0 0 0 0 // ☐ ☐ ☐ ☐ ☐ 5 6 7 8 9 -> 1 1 1 1 1 // ☐ ☐ ☐ ☐ ☐ 10 11 12 13 14 -> 2 2 2 2 2 // ☐ ☐ ☐ ☐ ☐ 15 16 17 18 19 -> 3 3 3 3 3 while (1) { int randPos = rand() % 20; // 0 - 19 사이의 숫자 반환 // 19 -> (3, 4) int x = conv_pos_x(randPos); int y = conv_pos_y(randPos); if (arrayAnimal[x][y] == -1) { return randPos; } } return 0; } int conv_pos_x(int x) { // 19 -> (3,4) return x / 5; } int conv_pos_y(int y) { // 19 -> 19 / 5 ? 몫은 3, 나머지 4 return y % 5; // y를 5로 나눈 나머지 값 } void printfAnimals() { printf("\n======== 이건 비밀인데 . . 몰래 보여줍니다 =======\n\n"); for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { printAlign(strAnimal[arrayAnimal[i][j]], 8); } printf("\n"); } printf("\n============================================\n\n"); } void printQuestion() { printf("\n\n(문제)\n"); int seq = 0; // seq // checkAnimal // ☐ ☐ ☐ ☐ ☐ 0 1 2 3 4 0 0 0 0 0 // ☐ ☐ ☐ ☐ ☐ 5 6 7 8 9 1 0 0 0 0 // ☐ ☐ ☐ ☐ ☐ 10 11 12 13 14 // ☐ ☐ ☐ ☐ ☐ 15 16 17 18 19 for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { // 카드를 뒤집어서 정답을 맞혔으면 ' 동물 이름' if (checkAnimal[i][j] != 0) { printAlign(strAnimal[arrayAnimal[i][j]], 8); } else { char temp[16]; sprintf(temp, "%d", seq); // 숫자를 문자열로 바꿔서 printAlign(temp, 8); // 한글처럼 정렬 } seq++; // 아직 뒤집지 못했으면 (정답을 못맞혔으면) 뒷면 -> 위치를 나타내는 숫자 } printf("\n"); } } int foundAllAnimals() { for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { if (checkAnimal[i][j] == 0) { return 0; } } } return 1; // 모두 다 찾음 } int getVisibleWidth(const char *str) { int width = 0; while (*str) { if ((*str & 0xF0) == 0xE0) { width += 2; str += 3; } else { width += 1; str += 1; } } return width; } void printAlign(const char *str, int totalWidth) { int visibleWidth = getVisibleWidth(str); printf("%s", str); for (int i = 0; i < totalWidth - visibleWidth; i++) { printf(" "); } }