묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 질문드립니다.
다음 코드의 문제가 뭔지 도통 모르겠어서 질문드립니다 #include<bits/stdc++.h> using namespace std; string s; bool flag; int cnt; bool isVowl(char c){ return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'; } int main(){ cin >> s; while(true){ cnt = 1; flag = 0; if(s == "end") break; if(s.find("a") == string::npos && s.find("e") == string::npos && s.find("i") == string::npos && s.find("o") == string::npos && s.find("u") == string::npos) { flag = 1; break; }; for(int i = 1; i < s.size(); i++){ char prev = s[i - 1]; if(prev != 'e' && prev != 'o' && prev == s[i]){ flag = 1; break; } if(isVowl(prev) && isVowl(s[i])) cnt++; else if(!isVowl(prev) && !isVowl(s[i])) cnt++; else cnt = 0; if(cnt == 3) { flag = 1; break; } } if(flag) cout << '<' << s << "> is not acceptable.\n"; else cout << '<' << s << "> is acceptable.\n"; cin >> s; } return 0; }
-
미해결토비의 스프링 6 - 이해와 원리
인터페이스는 사용하는 클래스에 가장 가까이 두는 걸로 이해했습니다. 하지만 그 인터페이스를 사용하는 클라이언트가 많다면 어떻게 해야할까요?
강의 재밌게 잘 보고 있습니다.궁금한 게 있어 질문드립니다.인터페이스는 구현체와 같은 모듈에 두는 게 아닌, 사용하는 클래스에 가장 가까이 두는 걸로 이해했습니다. 하지만 그 인터페이스를 사용하는 클라이언트가 많다면 어떻게 해야할까요?예를 들어 Payment 패키지의 PaymentService 도 ExRateProvider 를 쓰고,XXX 패키지의 XXXService 도 ExRateProvider 를 쓴다면ExRateProvider 의 모듈 위치는 어디에 존재를 해야할까요? 아니면 다른 방법이 있을 듯 한데, 그 방법은 무엇일까요?ExRateProvider 의 모듈 위치가 클라이언트와 분리되어 있다면, DIP 적용 이전 그러니까 WebApiExRateProvider 와 ExRateProvider 가 한 모듈에 같이 위치한 그림과 별반 다를 것이 없다(모듈 의존성에 따른 변경 가능성) 생각이 들어서요
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
onBackPressed 함수 오류
다른 질문에서 에뮬레이터를 바꾸면 된다고 하셨는데에뮬레이터랑 무슨 상관인가요?? 저는 제 폰 연결해서 사용 중인데 저렇게 오류가 나네요
-
미해결스프링 핵심 원리 - 기본편
이상한 에러가 발생했습니다
jdk 22를 사용중입니다.증상은 위의 에러가 뜨는데 테스트 코드들은 정상적으로 초록 채크표시가 뜹니다. 이거 무슨 에러인가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ItemController
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]1. ItemController에서 downloadImage함수에서 @ResponseBody를 사용하였는데, 사용하지않게 되면, 예외가 발생합니다. 왜그런가요?ItemController에서 downloadAttach에서는 ResponseEntity<Resource>를 사용하셨는데, 이게 @ResponseBody와 같은거라고 하셨는데,( 다만, header에 추가할 부분이 있어서 ResponseEntity를 사용하셨다고 하는데) 어떤 부분이 같은 건가요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
설치 문제
지금 1번째 설치 부분부터 막혔는데 도와주세요우분투 22.04버전, vivado 2022.2 버전으로 다운받아서 했는데다운이 다 됐다가 저런식으로 warn이라고 뜨면서 안되는데 뭐가 문제일까요... 사실 처음에 vivado도 2024.1 버전으로 하다가 저런식으로 똑같이 문제돼서 우분투 완전히 삭제했다가 vivado 2022.2 버전으로 낮추고 다시 한거거든요그리고 강의에서는 20.04로 했는데 22.04로 해도 된다고 해서 그대로 했는데 그게 문제인건가요?설치하는데 시간이 너무 많이 잡아먹혀서 어떻게 해야될지 모르겠네요
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
mytomcat 컨테이너가 실행이 안되는 문제
Dockerfile로 이미지가 만들어진 상태에서docker run --privileged -p 8080:8080 --name mytomcat docker-server:latest명령어를 입력하면위와 같은 에러가 발생합니다.실습 환경은 DinD 방식을 사용하고 있으며, edowon0623/docker-server:m1 이미지를 pull 받아서 컨테이너를 실행시키고 있습니다
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
@State 특성(?) 질문입니다
import SwiftUI struct ContentView: View { @State private var ToggleCheck: Bool = false // @State 없으면 에러 왜? / 연산자 토글을 누른 후의 숫자 입력인지 체크하기 위한 변수 @State private var isAdditionActive = false // 덧셈 토글 체크 @State private var isSubtractionActive = false // 뺄셈 토글 체크 @State private var isMultiplicationActive = false // 곱셈 토글 체크 @State private var isDivisionActive = false // 나눗셈 토글 체크 @State private var printNumber: String = "0" // 계산식에 사용 or 화면에 출력한 내용을 담은 변수 @State private var totalNumber: Int = 0 // 토탈 계산 값 @State private var op: Character = " " @State private var buttonData: [[String]] = [ // 키패드 모음 2차원 배열 ["AC", "+/-", "%", "÷"], ["7", "8", "9", "X"], ["4", "5", "6", "-"], ["1", "2", "3", "+"], ["0", ".", "="]] var body: some View { ZStack{ Color.black.ignoresSafeArea() // 화면 전체 여백 없이 배경색 지정 VStack { Spacer() HStack{ Spacer() Text("\(Int(printNumber)!)") // 계산기의 숫자 출력 .padding() .font(.system(size: 73)) .foregroundColor(.white) } ButtonPosition() // C, +/-, %를 제외한 버튼을 화면에 추가 } } } func Reset(){ printNumber = "0" // 출력된 계산 숫자 UI 초기화 totalNumber = 0 // 연산의 토탈값을 담고 있는 변수도 당연히 초기화 ToggleCheck = false op = " " buttonData[0][0] = "AC" isAllfalse() // 버튼의 토글값 및 연산자 버튼 토글 UI도 모두 초기화 } func isAllfalse(){ // 연산자의 토글 버튼을 전부 해제 하기 위한 함수 isAdditionActive = false isSubtractionActive = false isMultiplicationActive = false isDivisionActive = false } func opIfSwitch(){ // 실질적인 계산을 위한 switch문 if op == " "{ totalNumber = Int(printNumber)! } else{ switch op{ case "÷": totalNumber /= Int(printNumber)! if printNumber == "0"{ // 비정상 종료.. 왜? printNumber = "오류" } case "X": totalNumber *= Int(printNumber)! case "-": totalNumber -= Int(printNumber)! case "+": totalNumber += Int(printNumber)! default: break } } printNumber = String(totalNumber) } // 내 코드의 계산 방식 작성할 것 이따가 func Division(){ // 나눗셈 opIfSwitch() } func Multiplication(){ // 곱셈 opIfSwitch() } func Minus(){ // 뺄셈 opIfSwitch() } func Plus(){ // 덧셈 opIfSwitch() } func Equal(){ // 등호 opIfSwitch() isAllfalse() ToggleCheck = false // =을 누른 후 결과 값에 추가로 연산을 진행할 때 이 코드 없으면 정상적으로 진행되지 않음 } func ButtonPosition() -> some View{ // 버튼 디자인 및 포지셔닝 함수 ForEach(buttonData, id: \.self){ line in HStack{ ForEach(line, id: \.self){ row in switch row{ case "AC", "C", "+/-", "%": ButtonDesign(row, .gray, .black) case "÷", "X", "-", "+", "=": ButtonDesign(row, .orange, .white) default: ButtonDesign(row, .init("NumberButton"), .white) } } } } } func ButtonDesign(_ value: String, _ backcolor: Color, _ fcolor: Color) -> some View{ // 공통 버튼 디자인 Button { switch value { case "÷": isDivisionActive = true // 나눗셈 버튼 토글 isAdditionActive = false isSubtractionActive = false isMultiplicationActive = false case "X": isMultiplicationActive = true // 곱셈 버튼 토글 isDivisionActive = false isAdditionActive = false isSubtractionActive = false case "-": isSubtractionActive = true // 뺄셈 버튼 토글 isAdditionActive = false isMultiplicationActive = false isDivisionActive = false case "+": isAdditionActive = true // 덧셈 버튼 토글 isSubtractionActive = false isMultiplicationActive = false isDivisionActive = false default: break } ButtonAction(value) } label: { Text(value) .frame(width: value == "0" ? 160 : 80, height: 80, alignment: value == "0" ? .leading : .center) .background((value == "÷" && isDivisionActive) || (value == "X" && isMultiplicationActive) || (value == "-" && isSubtractionActive) || (value == "+" && isAdditionActive) ? Color.white : backcolor) //.background(value == "÷" && isDivisionActive ? Color.white : backcolor) //.background(value == "X" && isMultiplicationActive ? Color.white : backcolor) .foregroundColor(value == "÷" && isDivisionActive || (value == "X" && isMultiplicationActive) || (value == "-" && isSubtractionActive) || (value == "+" && isAdditionActive) ? Color.orange : fcolor) .font(.system(size: 33)) .cornerRadius(40) } } func ButtonAction(_ value: String){ switch value { // 버튼을 누르면 case "AC", "C": // C를 누르면 Reset() // 초기화 버튼을 누르면 각종 상수 및 변수들이 초기화 됨 case "÷": // 나누기를 누르면 Division() // 실질적인 계산을 하는 함수 op = "÷" ToggleCheck = false case "X": // 곱하기를 누르면 Multiplication() // 실질적인 계산을 하는 함수 op = "X" ToggleCheck = false case "-": // 빼기를 누르면 Minus() // 실질적인 계산을 하는 함수 op = "-" ToggleCheck = false case "+": // 더하기를 누르면 Plus() // 실질적인 계산을 하는 함수 op = "+" ToggleCheck = false case "+/-": printNumber = String(Int(printNumber)! * -1) case "=": Equal() // 최종 결과를 출력하기 위한 스위치문 호출 op = " " // 내가 원하는 기능을 구현하기 위해 꼭 필요한 코드 printNumber = String(totalNumber) // 연산의 결과 값을 출력 totalNumber = Int(printNumber)! default: if printNumber == "0"{ printNumber = value // 숫자 첫 입력시 화면에 출력 buttonData[0][0] = "C" } else if (isDivisionActive || isMultiplicationActive || isSubtractionActive || isAdditionActive) && ToggleCheck == false{ printNumber = value ToggleCheck = true // 연산자 버튼이 눌러짐 } else{ if printNumber.count < 9{ printNumber += value } } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }안녕하세요! 다름이 아니라 강의에 있는 프로젝트 외에 따로 계산기를 하나 만들어보고 있습니다 근데 @State 어노테이션에 대해 이해가 안되는 부분이 있습니다 구글링도 해보고 여러 방면으로 알아봤는데 원하는 답을 얻지 못해서 질문 올립니다 @State는 뷰의 상태 변화를 체크하는 어노테이션이라고 알고 있습니다. 변수 선언부의 주석을 보시면 @State 없으면 에러 왜? 이런 내용의 주석이 달려 있는 변수가 지금 저의 의문점입니다 ToggleCheck 변수와 totalNumber 변수는 뷰의 상태 변경에 직접적인 영향을 미치지 않기 때문에 @State가 필요 없다고 생각합니다. 근데 저 두 변수에 @State를 지우면 에러가 발생합니다. 일단 뷰의 변화는 실질적으로 totalNumber 변수의 값을 대입 받는 printNumber 변수이니 printNumber 변수에만 @State가 필요하다고 생각하는데 왜 에러가 발생하는 걸까요 마찬가지로 ToggleCheck 변수도 마찬가지로 체크용으로 사용하고 저 값이 변한다고 해서 직접적으로 뷰에 미치는 영향이 없는데 왜 @State가 필요한 걸까요... 혹시 알고 계시면 꼭 답변 부탁드리겠습니다...!감사합니다!
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
Basic_dump 수행 오류
안녕하세요 항상 좋은 강의 감사드립니다. 상기에서 5번/6번을 누르면 데이터가 트래킹이되는데 다른 번호는 트레킹이 안됩니다. (7번/8번 포함) VMware가 트레킹이되면 정상적으로 빌드된거같은데 혹시 사유추정이 가능할지 문의드립니다.
-
미해결스프링 시큐리티 OAuth2
OAuth 2.0 Grant Flows 관련 질문
안녕하세요. OAuth 2.0을 배우고 싶어 학습 신청했습니다.유익한 강의 준비해주셔서 감사합니다.막연하게 알고 있는 Spring Security 에 대해 강의를 통해 명확하게 알아가고 있습니다. 강의를 들으며 몇가지 궁금한 점이 있어 질문드립니다. 우선은 자체 로그인만 구현할 예정이라면,소셜 로그인 기능이 없는 경우에는 OAuth 2.0을 도입할 필요가 없는 건가요?Resource Owner Password Credentials Grant Flow 는 Deprecated 된다고 하는데 그럼 어떻게 구현해야하나요? 답변주시면 성장하는데 큰 도움이 될 것 같습니다!감사합니다!
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
문드윽뀨
function 합계_구하기(숫자1, 숫자2, 숫자3) { const 최대값 = Math.max(숫자1, 숫자2, 숫자3); const 나머지_합계 = [숫자1, 숫자2, 숫자3] .filter(값 => 값 !== 최대값) .reduce((이전값, 현재값) => 이전값 + 현재값, 0); return 나머지_합계; } console.log(합계_구하기(6, 7, 11)); // 13 console.log(합계_구하기(13, 33, 17)); // 30한글로 하고 있는데 문득 왤캐 없어보이나 싶어서 글 올ㄹ미미미ㅠㅠㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
런타임 에러 (Segfault) 관련 2-Q 질문입니다.
http://boj.kr/59bfb607f084433aaf920e22c71f7ad7제출을 하니 ```런타임 에러 (Segfault)```이 뜨는데 혹시 해당 코드에서 주의해야 할점이나 반례가 있을까요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강사님 코드에 대해서 질문이 있습니다.
강사님이 강의에서 푸신 문제들 말고도 다른 문제풀이한것들도 보고 싶은데 혹시 큰돌님의 백준 아이디를 알 수 있을까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
조건 반복문강의
조건반복문 강의 4분 40초쯤에서 if절 에서 2의약수 또는 3의약수가 참일때, 6의 배수가 아닌것을 세어라. 로 해석되는데요.1.일단 해당강의에서 ‘약수’로 표현한건 전부 ‘배수’인거죠?모두 %정수로 표기되는데 약수, 배수 혼용되어서요. ll 연산자는 둘중 하나만 참이어도 전체가 참...으로 배웠는데! 왜 각각의 배수를 함께합쳐서 12개로 풀어야하는지 이해가 안갑니다.11:51초에서도 &&연산자는 둘다 참이어야 참인데, 위와 마찬가지로 2의배수중 3의배수가 아닌것을 골라야하는대 왜 이렇게 적용되는지 이해가 안갑니다.if문이 계속 괄호안에 반복되면 순차적으로 조건문을 실행하여 참인지 보면 되는건가요?혹시 강좌에 나오는 예제들만 모아놓은 출력물은 없을까요? 강좌에서 나오는 꼭외워야할부분, 강의 마지막에 나오는 요약문도 출력물이 없을까요? 예제문제를 다시풀어보고싶은데 강의마다 예제나오는 부분을 찾아보기가 시스템이 수월하지않아서요 .
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
JDK 다운로드 버튼이 없습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]저는 왜 다운로드 버튼이 없고 select 버튼만 있을까요? 기존에 JDK8 이 설치되어있긴 한데 JDK8로 수업을 들어도 무관할까요?
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
3.1 파트) window에서 환경 설정
안녕하세요. LLM과 RAG와 관련하여 공부할 일이 생겨서 강의를 결제하여 듣게 되었습니다. 우선 좋은 강의 찍어주셔서 감사의 말씀 먼저 드립니다.강의가 macOS를 사용하여 진행을 하시다보니 제 window 환경에서는 3.1 환경 설정 파트에서 pyenv 명령어와 pyenv virtualenv가 작동을 하지 않습니다... 검색해보니 pyenv-win으로 하면 된다는 말도 있어서 이리저리 따라해봤는데도 잘 작동하지 않습니다. window에서는 어떻게 환경 설정을 해야하는지 질문 드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-C 질문드립니다 :)
안녕하세요 선생님 🙂 덕분에 이분탐색 문제 관련해서 아주 쉽게 익힐 수 있었던 것 같습니다. 감사합니다 ^^ 아래 링크는 강의를 보기 전에 풀이했던 풀이인데요, 선생님과의 차이점은 cnt를 0으로 초기화했다는 것 딱 하나입니다. 강의에서도 cnt를 1로 초기화한 이유는 어차피 한번은 무조건 뽑고 시작하기 때문이라고 설명해주셨는데요, 부끄럽지만 그 말씀이 어떤 의미인지 이해가 가지 않아 질문 드립니다. 자세히 설명해주시면 정말 감사하겠습니다!!http://boj.kr/b66ec43db9944743b4afe1525f8a161b
-
해결됨[백문이불여일타] 데이터 분석을 위한 기초 SQL
해커랭크 weather observation station 6 질문
SELECT DISTINCT city FROM STATION WHERE city LIKE 'a%' OR city LIKE 'e%' OR city LIKE 'i%' OR city LIKE 'o%' OR city LIKE 'u%'; 위와같이 작성했음에도 해커랭크에서는 틀렸다고 하는데 어떤 부분이 잘못된건지 잘 모르겠습니다.
-
해결됨실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트
통합 테스트 작성 방식에 대해 궁금한 점이 있습니다
테스트는 내부 구현에 의존하지 않고 사용자 입장에서 작성하는게 좋다고 이해했습니다.그런데 ProductFilter 컴포넌트의 통합테스트를 작성하시면서 "상품명을 수정하는 경우 setTitle 액션이 호출된다", "최소 가격 또는 최대 가격을 수정하면 setMinPrice와 setMaxPrice 액션이 호출된다" 와 같이 사용자가 값을 변경할 때 특정 액션 함수가 호출되는지를 검증하셨는데, 이건 내부 구현에 의존적인 테스트라고 볼 수 없을까요?추후 Store 내부 구조가 바뀌거나 아예 Store를 사용하지 않는 식으로 구현 방법이 바뀌더라도 사용자 입장에선 달라지는게 없으니 테스트가 실패하지 않는게 좋은 테스트가 아닌지 궁금합니다.2. api를 호출하는 커스텀 훅을 사용하는 컴포넌트를 테스트하실 때 msw를 이용해 해당 api의 응답을 모킹하셨는데, 커스텀 훅 자체를 모킹해서 훅이 반환하는 값을 원하는대로 지정하는 것도 가능할 것 같습니다. 이렇게 api 대신 훅을 모킹하여 테스트하는 것에 대해 어떻게 생각하시는지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
DeadLock 테스트를 해봤지만, 정상작동?
visual studio 2022로 작업하고 있습니다.Interlocked(9강), Lock(10강), DeadLock(11강)에서 디버깅을 하면서 무한루프 또는 DeadLock(11강)에 디버깅이 안되는 것을 따라해보고 있었습니다.이전 컴파일러 최적화 강의(6강)를 따라하면서 Debug모드를 relase로 할 때 visual studio에서 3가지의 선택사항이 나왔었습니다. 취소해도 다시떠서 디버깅을위해 내꺼를 제외하고? 를 선택했었습니다.(항목이 기억이 나지 않네요.. 뭐라고 검색해야할지도 모르겠고 프로젝트를 새롭게 만들어도 해당사항은 나오지 않았습니다..) 그러고 나서 영상처럼 이부분이 문제입니다 하는 부분들이 저는 이상이 없더라고요여기서 중단점 잡아도 안잡히는 문제가 있다고 합니다. 그래서 WaitAll에서 스레드를 찾고 문제점을 찾으셨지만 제가 따라할 때는 중단점으로 넘어왔습니다. 제 생각에는 시간이 지나면서 C#이 업데이트 됐거나, 2019가 아닌 2022로 해서 해당 문제가 안생기는 걸까요? 이것 뿐만 아니라 이전꺼에서도 나왔는데 크게 문제될건 없지만 답답함에 질문드려봅니다.