inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

주말코딩님의 게시글

주말코딩 주말코딩

@weekendcode

수강생
6,494
수강평
812
강의 평점
4.8

게시글 1422

질문&답변

정처기 2026-3 실기 문의

칸이 어떻게 되어있었을까요? 빈 곳에 넣는 것이었으면 그렇게 작성하셔도 정답처리가 될 것이고요. 기호와 함께 쓰라고 되어있으면.. 아쉽게도 오답처리 될 수도 있습니다. 어떻게 나뉘어있었는지가 중요해보입니다. 순서대로 쓰라고 했다면 다 정답처리가 될 수도 있습니다.

좋아요수
0
댓글수
2
조회수
120

질문&답변

정처기 실기 3회 컴싸 사용 여부

너무 걱정마세요. 상관없습니다. 그런 것으로 감점처리 안합니다. 다만 문제 옆에 직접 푸는 경우에는 안된다고 안내하는 경우는 있습니다. 정보처리기사 실기는 OMR이 아니라 다 직접 채점하는 방식일 것이기 때문에 펜을 뭘로 하든지 크게 문제 삼지 않습니다. 정확하게 메모란에 풀고, 문제를 컴퓨터용 사인펜으로 했다면 아예 문제없습니다. 정답처리 될 겁니다.

좋아요수
0
댓글수
1
조회수
82

질문&답변

모의고사 1 회 2번문제 중

안녕하세요, 좋은 질문입니다. 결론부터 말씀드리면 답지 풀이(2 14)가 맞습니다. 나중에 받았다고 가정하고 푸는 요령이 있는 것은 아니고, 자바가 실제로 그 순서대로 실행하기 때문에 답이 그렇게 나옵니다. new Child()를 하면 자바는 부모 쪽을 먼저 전부 만들고, 그다음에 자식 쪽을 만듭니다. 순서대로 따라가 보겠습니다. 1) 객체가 처음 만들어질 때 숫자 필드는 부모 x, 자식 x 모두 기본값 0으로 시작합니다. 2) 부모 필드 초기화 int x = 2가 실행됩니다. (부모 x = 2, 자식 x = 0) 3) 부모 생성자 본문이 실행되면서 get()이 호출됩니다. (질문하신 4행) 4) 부모 생성자의 x += 3이 실행됩니다. (부모 x = 5) 5) 이제서야 자식 필드 초기화 int x = 5가 실행됩니다. (자식 x = 5) 6) 자식 생성자 본문 x += 4가 실행됩니다. (자식 x = 9) 7) 자식 생성자에서 get()이 다시 호출됩니다. 3)번 시점에 부모 x는 2)번을 지났기 때문에 2입니다. 하지만 자식 x가 5가 되는 것은 5)번이라서, 이 시점의 자식 x는 기본값 0 그대로입니다. 부모가 2를 받았으니 자식도 5를 받았을 거라고 생각하기 쉬운데, 부모와 자식은 초기화 시점이 다릅니다. 부모가 생성자까지 모두 실행한 뒤에야 자식 차례가 옵니다. 부모 생성자 안에서 get()을 불렀는데 Child의 get()이 실행되는 이유는, 지금 만들어지고 있는 객체가 Child이기 때문입니다. 자바는 메서드를 호출할 때 실제 객체가 오버라이딩한 메서드를 실행하고, 생성자 안에서도 마찬가지입니다. 그래서 출력은 다음과 같습니다. 3)번 시점: Child.get() = 자식 x + 부모 x = 0 + 2 = 2 7)번 시점: Child.get() = 9 + 5 = 14 답: 2 14 시험용으로는 "부모 필드 → 부모 생성자 → 자식 필드 → 자식 생성자, 메서드는 실제 객체(자식)의 것이 불린다"로 외워 두시면 됩니다. 부모 생성자 안에서 자식 메서드가 불리고 그 메서드가 자식 필드를 쓰면, 그 필드는 아직 0입니다(문자열이면 null). 실기에 자주 나오는 유형이니 이 문제를 직접 한 번 더 따라가 보시길 권합니다. 응원합니다.

좋아요수
0
댓글수
2
조회수
88

질문&답변

15분 48초 질문

안녕하세요. 딕셔너리에서 대괄호 안에 키가 들어가고 전체 리턴값이 밸류라는 뜻입니다. dic = {1: 2, 2: 4, 3: 6} 이 상태에서 4를 출력하려면 4의 키인 2를 넣어야겠죠? 그 때 dic[2]로 호출합니다.

좋아요수
0
댓글수
2
조회수
75

질문&답변

서브넷 마스크

안녕하세요~ 섹션 11에 학습자료로만 제공드리고 있습니다. PDF 확인 부탁드립니다.

좋아요수
0
댓글수
2
조회수
66

질문&답변

업캐스팅 문제 예시 4번 부모 호출

안녕하세요. 헷갈리시면 안됩니다. super()가 부모의 생성자고, super.paint()는 부모에 있는 paint()라는 메서드를 실행하라는 의미입니다. 자식 생성자의 첫 줄에 super(...) 나 this(...) 가 없으면 Java 언어가 super(); 를 자동으로 넣습니다. 그래서 B의 생성자는 실제로 아래와 같이 동작합니다. public B() { super(); // 컴파일러가 자동 삽입 → A() 실행 super.paint(); // 그 다음 부모의 paint() 메서드 호출 } 실행 순서는 다음과 같습니다. new B() → 자동 삽입된 super() 로 A() 실행 → Constructor of A 출력 후 줄바꿈 super.paint() → A의 paint() 실행 → A 출력 A의 paint() 안의 draw() → 객체가 B이므로 오버라이딩된 B의 draw() 실행 → D 출력 b.paint() → B의 paint() → C 출력 b.draw() → B의 draw() → D 출력

좋아요수
0
댓글수
2
조회수
68

질문&답변

출력값 문의

안녕하세요, 답변드립니다. 우선 가장 먼저 짚고 넘어갈 것은 : 가 별표를 5개까지만 출력하라는 의미가 아니라, 최소 5칸의 공간을 확보하고 왼쪽 정렬하라는 의미입니다. 10 // 2는 5이기 때문에 5개가 출력되는 것이 맞습니다.

좋아요수
0
댓글수
2
조회수
67

질문&답변

모의고사 1회 계산문제 2개 맞았는데

안녕하세요, 말씀주신 취지는 모의고사가 어렵다는 것으로 보이는데 맞으실까요? 모의고사에서는 기존 문제를 넣으면서도, 가르쳐드리지 않은 몇 개의 API를 추가했습니다. 다른 게시판을 보면, 모의고사 난도가 너무 낮아서 이걸로 도움이 되느냐는 질문도 있습니다. 수강생분들마다 배경과 전공이 다르다보니 난이도 조정이 쉽지 않습니다. 그나마 기출하고 흡사하게 내면서 추가 문제를 만든 것이기 때문에 정말 글자 그대로 모의고사라고 생각해주시면 되고, 기출문제를 풀 수 있을 정도가 되면 크게 걱정할 필요없다고 생각합니다. 개별 기출 문제의 킬러문제에 해당하는 코드 문제를 복습해보시고, 이론 학습을 꼼꼼이 외워가시면 합격하실 수 있다고 생각합니다.

좋아요수
0
댓글수
2
조회수
82

질문&답변

부모의 생성자 출력 관련

안녕하세요. 질문 주신 코드는 생성자가 2번 불립니다. 질문 의도가 맞으신지는 모르겠으나, 우선 답변드립니다. 각 객체를 new 로 만들 때마다 생성자가 따로 실행되므로, 순서대로 두 번 출력됩니다. Car(Tesla, 2021) ECar(75) Car(toyota, 2023) ECar(80) tesla 를 만들 때 부모 생성자, 자식 생성자 순으로 실행되고, 그다음 toyota 를 만들 때 같은 과정이 처음부터 다시 실행됩니다. 두 객체는 서로 영향을 주지 않습니다. 주의하실 것은 질문 주신 10:23에는 super(model, year); 를 주석 처리한 상태입니다. 자바가 자동으로 super(); 를 넣어 기본 생성자 Car() 를 호출하므로 출력은 이렇게 바뀝니다. Car() ECar(75) Car() ECar(80) 이 경우 model 과 year 는 값이 들어가지 않아 각각 null , 0 으로 남습니다. 그래서 최종 출력값은 Car() ECar(75) Car() ECar(80) 입니다. 전체 코드와 출력문을 보여드리겠습니다.

좋아요수
0
댓글수
2
조회수
63

질문&답변

다차원 배열 포인터 질문있습니다

안녕하세요. 답변 전에 C언어의 원칙 두 가지를 먼저 말씀드리겠습니다. 강의에서 다룬 내용이지만 헷갈리기 쉬운 부분이라 다시 정리합니다. 첫째, C언어에는 문자열 자료형이 따로 없습니다. char를 메모리에 연달아 놓고 끝에 \0 을 붙인 것을 문자열로 취급합니다. 그래서 %s 는 값을 받지 않고 문자열이 시작되는 메모리 주소를 받습니다. 그 주소부터 한 글자씩 출력하다가 \0 을 만나면 멈춥니다. 이 부분을 많이들 착각합니다. 둘째, 배열 이름은 식에서 쓰이면 배열 첫 번째 원소의 주소로 바뀝니다. C언어 스펙이 그렇게 정해져 있습니다. (sizeof나 & 연산자와 함께 쓸 때만 예외입니다.) 이 두 가지를 바탕으로 질문을 풀어보겠습니다. 1번 질문 중괄호 전체가 주소를 뜻하지는 않습니다. 중괄호는 배열의 각 칸에 넣을 초기값 목록입니다. 다른 배열 이름(k)을 쓴 것과도 다릅니다. C에서는 배열을 다른 배열 이름으로 초기화할 수 없습니다. 주소에 해당하는 것은 중괄호 안의 각 문자열 리터럴입니다. "Hello" 라고 쓰면 컴파일러가 메모리 어딘가에 H e l l o \0 을 저장합니다. 이것도 일종의 char 배열이므로, 두 번째 원칙에 따라 식에서는 첫 글자 H 의 주소로 바뀝니다. 결과적으로 4개의 주소가 4칸에 하나씩 들어갑니다. arr[0][0] = "Hello"의 시작 주소 arr[0][1] = "World"의 시작 주소 arr[1][0] = "app"의 시작 주소 arr[1][1] = "dev"의 시작 주소 그러니 "C의 한계라서 포인터를 쓴다"고 외우실 필요는 없습니다. "문자열 리터럴은 첫 글자의 주소다"만 기억하시면 됩니다. 포인터 대신 char arr[2][2][6] 처럼 글자를 직접 복사해 담는 방식도 가능하고, 이 코드는 둘 중 포인터 방식을 고른 것입니다. 2번 질문 선언된 것은 배열입니다. 정확한 타입은 "const char* 4개를 담는 2x2 배열"입니다. 선언은 이름에서부터 읽으면 됩니다. const char *arr[2][2] arr → arr은 [2][2] → 2x2 배열이고 * → 각 칸은 포인터이며 const char → 그 포인터는 const char를 가리킨다 참고로 const char (*arr)[2] 처럼 괄호로 묶어야 arr 자체가 포인터가 됩니다. printf에서 별을 붙이지 않는 이유는 첫 번째 원칙과 같습니다. %s 는 주소를 받는 형식이고, arr[0][0] 에 이미 주소가 들어 있습니다. printf("%s\n", arr[0][0]); // Hello (주소를 넘김) printf("%c\n", *arr[0][0]); // H (주소를 따라가 글자 하나를 꺼냄) printf("%c\n", arr[0][0][1]); // e 별을 붙이면 문자열 전체가 아니라 첫 글자 하나(char)가 나오므로 %c 로 출력해야 합니다.

좋아요수
0
댓글수
3
조회수
91