묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
84.2-P 코드 관련 질문
안녕하세요 선생님해당 문제에 대해 선생님의 코드와 제가 스스로 풀어서 맞힌 코드에 대해 질문 있어 작성합니다.먼저 선생님 코드에서 선생님의 로직을 정리하면 아래와 같이 된다고 생각하는데 맞는지 여쭤봅니다.(선생님 코드 링크) http://boj.kr/2812582f10eb41dfa63761279266e42f /* 선생님 로직에서> !visited[][] && !a[][] => 안전영역 !visited[][] && a[][]==1 => 벽이 있어서 접근 불가 영역 (continue로 처리, 즉 벽이 있는 영역은 visited[][]가 1로 set될 수 없음) !visited[][] && a[][]==2 => 원래부터 바이러스가 있는 영역 (visited[][]==1로 set) visited[][] && !a[][] => 바이러스가 퍼지는 영역(visited[][]==1로 set) visited[][] && a[][]==1 => 이런 경우는 발생하지 않음 visited[][] && a[][]==2 => 원래부터 바이러스가 있는 영역인데 이미 방문한 영역(cotinue로 처리) */제가 스스로 풀어서 맞춘 코드에 대해 논리적으로 완벽한게 맞는지 코드 리뷰를 부탁드립니다.제가 생각했을 때 저는 visited 배열과 a배열을 사용하신 선생님과 달리 g배열 하나를 사용하여 g배열의 값(0,1,2)에 따라 각 영역을 구분하여 풀었는데요. 백준에서 채점한 결과 문제를 맞췄다고 나왔는데 혹 제가 불필요한 부분을 중복 체크하는 논리적인 오류가 있는지 헷갈려 선생님께 질문드립니다.(제 코드 링크) http://boj.kr/f2b1836ef32f4c1b8c06ad497201d99b제가 백준 제출시에는 주석을 다 빼고 코드를 붙여 넣어 코드 파악에 더 용이하도록 아래는 주석을 붙인 코드도 첨부합니다.감사합니다.#include <bits/stdc++.h> using namespace std; int n, m; // 세로, 가로 int safe_size; // 안전 영역 크기 int g[10][10]; vector<pair<int, int>> combi; const int dy[] = {-1, 0, 1, 0}; const int dx[] = {0, 1, 0, -1}; void virus_spread(int gp[][10], int a, int b){ for(int i=0; i<4; i++){ int ny = a + dy[i]; int nx = b + dx[i]; // graph 범위를 초과할 때 if(ny<0 || nx<0 || ny>=n || nx>=m) continue; // gp[ny][nx]==1 벽이거나 gp[ny][nx]==2 이미 바이러스가 있을 때 if(gp[ny][nx]) continue; // gp[ny][nx]==0 빈 칸 일때 gp[ny][nx] = 2; virus_spread(gp, ny, nx); } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> m; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ cin >> g[i][j]; // 벽을 세울 수 있는 후보 좌표 따로 저장하기 if (!g[i][j]) combi.push_back({i, j}); } } size_t c = combi.size(); for(size_t i=0; i<c; i++){ for(size_t j=i+1; j<c; j++){ for(size_t k=j+1; k<c; k++){ // cout >> i >> " " >> j >> " " >> k >> "\n"; pair<int, int> p1 = combi[i]; pair<int, int> p2 = combi[j]; pair<int, int> p3 = combi[k]; // 3개의 벽 세우기 g[p1.first][p1.second] = 1; g[p2.first][p2.second] = 1; g[p3.first][p3.second] = 1; // 바이러스 퍼뜨리기 int dup_g[10][10]; copy(&g[0][0], &g[0][0]+100, &dup_g[0][0]); for(int a=0; a<n; a++){ for(int b=0; b<m; b++){ // 바이러스가 있는 칸이면 spread virus if(dup_g[a][b]==2) virus_spread(dup_g, a, b); } } // 안전영역크기 카운트 int count_safe=0; for(int a=0; a<n; a++){ for(int b=0; b<m; b++){ if(!dup_g[a][b]) count_safe++; } } // 최대안전영역크기 갱신 safe_size = max(safe_size, count_safe); // graph 초기화 g[p1.first][p1.second] = 0; g[p2.first][p2.second] = 0; g[p3.first][p3.second] = 0; } } } cout << safe_size << "\n"; return 0; }
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]templates 에 css 추가하여 해결 했습니다. html 하위에 ~~~.html 파일들은 css 가 적용되어 열립니다.templates/baisc 하위 ~~~.html 은 이렇게 뼈만 앙상하게 나오는데 강의 에서는 templates 의 하위 html 파일에서도 css 폼이 적용 되어 나오는데 따로 설정 방법이나 변경 사항이 있는걸까요 ?<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <link th:href="@{/css/bootstrap.min.css}" href="../css/bootstrap.min.css" rel="stylesheet"> </head> <body> <div class="container" style="max-width: 600px"> <div class="py-5 text-center"> <h2>상품 목록</h2> </div> <div class="row"> <div class="col"> <button class="btn btn-primary float-end" onclick="location.href='addForm.html'" th:onclick="|location.href='@{/basic/items/add}'|" type="button">상품 등록</button> </div> </div> <hr class="my-4"> <div> <table class="table"> <thead> <tr> <th>ID</th> <th>상품명</th> <th>가격</th> <th>수량</th> </tr> </thead> <tbody> <tr th:each="item : ${items}"> <td><a href="item.html" th:href="@{/basic/items/{itemId}(itemId=${item.id})}" th:text="${item.id}">회원id</a></td> <td><a href="item.html" th:href="@{|/basic/items/${item.id}|}" th:text="${item.itemName}">상품명</a></td> <td th:text="${item.price}">10000</td> <td th:text="${item.quantity}">10</td> </tr> </tbody> </table> </div> </div> <!-- /container --> </body> </html>
-
해결됨QGIS 입문자 올인원 스타터팩 (이론/실습형)
데이터 조인
수업과 관련한 내용을 편하게 질문 바랍니다 😀[특정 필드 기준 데이터 조인]바탕 레이어와 데이터 결합 시 기준이 필드의 피쳐들 중, 바탕이 되는 레이어의 필드 값과 일치하는 값이 없는 결합 레이어의 피쳐는데이터 조인 후, 바탕 레이어의 속성테이블 확인 시 생략되고 결합 레이어의 기준 필드 내에서 바탕 레이어와 일치하는 값의 피쳐들만 바탕 레이어의 속성테이블에 나타나나요?
-
미해결설계독학's Verilog 마스터 Season 1 (실전 코딩 테스트 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)
mobaxterm 완전 삭제법
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) mobaxterm을 지우고 다시 깔아도 제가 이전에 했던 세팅이 남아있어 다른 프로그램이 안 돌아가는 문제가 발생하는데, 아예 mobaxterm을 전체를 지우고 다시 깔았을 때, 제가 이전에 접속했던 서버 기록이 안 남게 하려면 어떻게 해야 하나요? 지금 local terminal도 접속이 안 되고, 계속 Mobaxterm X server:0.0이라는 black screen만 계속 뜹니다. 해결 방법 필요합니다.
-
해결됨QGIS 입문자 올인원 스타터팩 (이론/실습형)
DEM
안녕하세요!DEM관련하여 질문 남깁니다.DEM의 경우, 지역의 고도 수치라고 하셨는데정확히 어떤 자료인지 헷갈려서 여쭙습니다.Z값이 고도를 나타내고, X/Y는 위치정보를 나타내는 것을 의미하는 건가요..?
-
미해결홍정모의 따라하며 배우는 C언어
scanf()를 여러 개 사용할 때 scanf()자체가 건너뛰기가 되는 현상 질문입니다.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int userInputBase = 0; int userInputExp = 0; int value = 0; char continueLoop = 'y'; while (continueLoop == 'y') { printf("가수부를 입력하세요: "); scanf("%d", &userInputBase); printf("지수부를 입력하세요: "); scanf("%d", &userInputExp); value = 1; for (int i = 0; i <userInputExp; ++i) { value *= userInputBase; } printf("%d의 %d 제곱은 %d입니다\n", userInputBase, userInputExp, value); printf("다른 값을 계산하시겠습니까? (y/n) : "); scanf("%c", &continueLoop); printf("입력한 값은 %c 입니다.\n", continueLoop); } printf("종료 되었습니다. Good bye"); }이렇게 작성했습니다. scanf("%c", &continueLoop); 부분에서 n을 입력하면 while문을 빠져 나오게 의도 했는데, debuger를 살펴보니 continueLoop 변수에 10 '\n'이 저장이 된 채 해당 라인을 그냥 건너뛰더라고요. 그러고 나서 프로그램이 마지막 printf() 라인을 출력하고 종료 되었습니다. 마지막 scanf()를 건너뛰는 이유와 알 수 없는 값이 continueLoop 변수에 들어가 있는 이유가 궁금합니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
SQL 쿼리 결과가 표시되지 않습니다
안녕하세요.영상 4:13 에서 쿼리실행시 쿼리 결과가 표시되지 않습니다. 어떠게 해야할까요? 에러메시지:
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 모델, 평가, 예측
예를 들어 평가지표가 여러개인 경우 코드는 다 작성하고 바로 예측하면 되나요?? 평가랑 예측의 상관성을 잘 모르겠습니다. 보통 코드에 평가 지표를 여러개 작성하는데 그게 다 반영돼서 예측하는건가요?
-
미해결한 입 크기로 잘라먹는 타입스크립트(TypeScript)
7:17초 업캐스팅 질문이있습니다!
안녕하세요 선생님!다름이아니라 c = d; 부분에서 업캐스팅이라고 하셨는데 혹시 다운캐스팅이 아닌가 하는 생각이 들어서 질문을 남깁니다!type C는 슈퍼타입(넘버타입)이고, type D는 서브타입(넘버 리터럴타입) 입니다.c = d;즉, c라는 변수에 d라는 값을 할당합니다.슈퍼타입의 자리에 서브타입을 할당합니다.결국 슈퍼타입이 서브타입이 되므로 다운캐스팅이라고 이해했습니다.아래는 제가 생각한 코드의 흐름입니다. 21번째 줄) type C = (value: number) => void; >> "C"라는 타입을 타입별칭으로 설정24번째 줄) let c: C = (value) => {}; >> "c"라는 화살표 함수를 정의. 여기서 매개변수로 타입"C"를 받음.24번째 줄) let c: (value: number) => void = (value) => {};>> "C"라는 타입별칭을 사용하는 대신, 직접 타입 작성 >> c함수는 (number) => void를 기대함.>> d함수는 (10) => void 만 처리할 수 있음.>> c함수는 10 뿐만이 아닌, 다른 숫자가 와도 처리 가능 = d함수보다 넓은 범위를 처리할 수 있음.= 함수타입에서는 슈퍼타입의 자리에 서브 타입을 넣는건 값이 제한적이어서 안전하지않음 - 에러발생느슨한 조건(슈퍼타입)에서 -> 구체적인 조건(서브타입)으로 = 다운캐스팅 혹시 제가 어디서 잘못된걸까요..??
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
강의에 대해 질문 드립니다.
제가 vue.js 끝장내기 - 실무에 필요한 모든 것과vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념 두 강의를 오래 전에 구매했습니다.개인 사정으로 이전에는 학습을 못하다가당장 두 세달 내 프로젝트에 투입이 되어야 하는 상황에 직면하여지금 필요에 의해 학습을 시작 하려고 합니다.헌데 구매한 시점이 오래되다보니이 강의들이 vue3를 사용해야 하는 지금 환경에서 당장 투입이 될 수 있는 도움이 되는지 아니면 버전의 차이로 많은 부분이 달라 새로 업데이트된 강의를 구입하는게 더 적절한지 알고 싶습니다.
-
해결됨<밑바닥부터 만들면서 배우는 LLM> 완독 챌린지
챌린지 완수 조건 문의 드립니다.
현재 모든 과정을 완료하고 책 구매 및 주간 미션도 모두 완료한 상태 입니다. 다만, 모든 과정에 영상이 없다보니,완료한 진도율이 진도율: 49강/53강 (92.45%) 이렇게 확인이 됩니다. 길벗 포인트의 지원 조건에 부합되는 미션의 기준 및 진도율에 대해정확히 알고 싶어 제가 수행한 기준에서도 충족이 되는지확인을 부탁드리고 싶습니다.
-
미해결지금 당장 NodeJS 백엔드 개발 [사주 만세력]
혹시 포스텔러처럼 사주뽑을때 장소지정해서 시간보정하는 기능은없나요?
혹시 포스텔러처럼 사주뽑을때 장소지정해서 시간보정하는 기능은없나요?
-
미해결피그마 시작하기
각 강의별 샘플
각 강좌에 사용되는 예제는 제공이 되지 않는건가요?예) 프레임, 그룹 때 사용한 학습완료 파일 등등예제는 그냥 눈으로 강의보면서 확인하고 실습은 못하는건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
실행 실패했는데 봐주실 수 있으실까요? ㅠㅠ
안녕하세요 퇴근후딴짓님! 다름 아니라 안내대로 작성했는데 계속 실행실패가 나와서 왜 그런것인지 궁금합니다 ㅠㅠ.
-
해결됨코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드
7강 2단계 인증번호
네이버의 2단계 인증번호는 매번 생성해줘야 하나요? 전에 됐었는데 오늘 다시 노드를 실행하니까 에러가 나서, 다시 설정하려고 기존에 생성되었던 인증번호를 가져오려고 하는데 가져올 수 있는 방법을 모르겠습니다. 새로 다시 설정하려고 하니까 정상적으로 등록이 되지 않습니다(빨강색)
-
미해결한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
tailwind css / sass 사용율? 에 대해서 궁금합니다
저는 항상 scss를 많이 사용해서 쭉 사용하고있었는데 tailwind 가 무섭게 치고 올라오는거 같더라구요 ㅎㅎ 둘다 공부를 하면서 사용해보고있는데 혹시 실무나 이런쪽에서는 어느걸 더 많이 활용하는지도 궁금합니다 ㅎㅎ
-
미해결얄코의 가장 쉬운 자료구조와 알고리즘
섹션 4의 15번 이진 트리(4가지 순회 방식) 자료가 없어요.
수업 노트보기가 안 보입니다 ㅠ스택 쪽에도 하나가 안 보였는데 기억이 안 나네요 ㅠㅠ
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
오타(?) 발견
킬구형 3장. 작전1: 관계형 데이터베이스 읽고 쓰기 (테이블의 심장에 처형장을 세우다 ☠) 읽고있는데 뭔가 오타같은거 발견한거같아
-
해결됨QGIS 입문자 올인원 스타터팩 (이론/실습형)
래스터 픽셀
안녕하세요!래스터 픽셀 관련 질문드립니다!래스터 픽셀의 해상도를 높이고 싶은데(픽셀의 크기를 더 작게), 래스터를 저장하면서 수평/수직 크기를 줄였더니 결과물이 깨져서 나옵니다.픽셀의 경우는 원본보다 더 작게 가공할 수는 없는건가요?
-
미해결실전! Django 입문 [최신 5.2 버전]
asgi 를 elasticbeanstalk 으로 배포는 어떻게 할수 있을까요?
wsgi 가 아닌 asgi 를 eb 로 배포하는데 위처럼 에러가 납니다. 혹시 asgi 일때 배포 방법이 따로 있을까요? wsgi 는 django.conf에서 하면 안된다고 하여 Procfile에 추가해서 시도해봤습니다