묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
배열 [] 단축키
1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]배열에서 int [][]를 입력할때 오른쪽 방향키를 누르지 않고 바로 첫번째[]를 넘어가서 []를 입력가능한 단축키가 있을까요?
-
미해결Java TPC 실전프로젝트 (Java API 활용)
JSON API 활용하기(JSON-Java)
package TPC;import org.json.*;public class Project01_Bd {public static void main(String[] args) {// JSON-Java(org.json)JSONArray students = new JSONArray(); //JSONArray 생성JSONObject student = new JSONObject(); // JSONObject객체생성student.put("name", "홍길동"); // key와 value쌍으로 이루어진 구조인 put메서드를 사용해서 studunt에 데이터를 집어넣는다.student.put("phone", "010-1111-1111");student.put("address","서울"); //여기까지가 한사람의 JSON 객체다.System.out.println(student); //{"address":"서울","phone":"010-1111-1111","name":"홍길동"}// 여기까지 우리가 JSON으로 굳이 객체를 만들지 않더라도 제이슨 구조가 바로 만들어진다.students.put(student);System.out.println(student); //{"address":"서울","phone":"010-1111-1111","name":"홍길동"}student = new JSONObject(); // 새로운 인스턴스 생성되어 변수에 할당되어 이전 인스턴스에 대한 참조가 대체 (홍길동 -> 나길동)student.put("name", "나길동");student.put("phone", "010-1111-1111");student.put("address","서울");students.put(student); //배열은 호출 시점에 객체에 대한 참조를 보유하므로 홍길동 -> 나길동으로 재할당 되었더라도 배열은 원래 객체에 대한 참조를 유지한다.System.out.println(student);//{"address":"서울","phone":"010-1111-1111","name":"나길동"}System.out.println(students); //[{"address":"서울","phone":"010-1111-1111","name":"홍길동"},{"address":"서울","phone":"010-1111-1111","name":"나길동"}]}}student라는 객체를 홍길동에서 나길동으로 재할당했는데, 배열은 호출시점에 객체에 대한 참조를 보유해서 재할당하더라도 배열은 이전 객체에 대한 참조를 유지한다고 하는데.. 그러면 홍길동은 배열에선 살아있는거고 (?) student 객체에서는 사라진건가요..?.......그리고 JSONObject에서 put메서드가 key-value 쌍이라고 설명하셨는데, JSONArray는 왜 put메서드를 객체로 저장하나요? put메서드는 객체에 저장하는지 배열에 저장하는지에 따라 구조가 달라지는건가요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
섹션 8. 배열 - 문제와풀이3
안녕하세요 강사님 productAdminEx 문제에 관련해서 질문이 있습니다.productNames[productCount] = scanner.nextLine(); 이게원래 배우던 형식으로는 두번째 사진처럼 for문 안에서productNames[i] = scanner.nextLine(); 이런식이어서 예를들어 i = 0인경우 productNames 배열의 0번째 인덱스에 scanner.nextLine();으로 사용자가 입력한 값이 들어가는건 이해가 가는데 productNames[productCount] = scanner.nextLine(); 면 productNames배열 안에 있는 productCount에 scanner.nextLine();로 사용자가 입력한 값을 넣는건가요..? 그리고 그 사용자가 입력한 값이 들어가있는 productCount를 productNames배열이 위치를 참조하고 있는걸까요?? 이해가 잘 안가서 질문드립니다. (첫번째 사진) (두번째 사진) productNames[productCount] = scanner.nextLine(); 이게productNames의 배열 자리에 productCount의 값을 넣는다는 의미인가요? 이해가 안갑니다..ㅜ
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ArrayList
안녕하세요.ArrayList는 커리큘럼에 없었는데 실무에서 잘 안쓰이나요?코딩테스트에선 많이 쓰이는 것 같아 여쭤봅니다!
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
String 문자열, String[] 배열에서의 .length, .length(), .charAt() 쓰임의 차이점을 알고 싶습니다 :)
안녕하세요, 다름이 아니라 제가 나도코딩 자바(Java) 기본편을 공부하면서, 배열(Array)에 관해 모르는 것이 생겨서 이렇게 질문을 남깁니다.일반적으로 배열이 String[] array = {...}; 이렇게 선언 되었을 때, array.length를 이용해서 배열의 길이를 파악하고, array[0] 처럼 이렇게 인덱스로 값의 위치를 파악하면서 데이터를 읽는다고 알고 있습니다. 반면에 String sentence = "sentence"; 이런 경우에는 같은 length를 쓰지만 String 클래스의 메소드라서 괄호를 나타낸 sentence.length()로 길이를 파악하고, "..."; 안 문장의 각 글자 별 위치를 파악할 때는 sentence.charAt()을 쓴다고 알고 있습니다. 제가 이해한 부분이 혹시 맞을까요?또한 아래처럼 선언된 String[] 배열에서:String[] Java = { "나는 자바가 좋아요" };Java 배열의 전체 길이를 파악하고 싶다면, Java.length 으로 적는데, 만약 배열 안 문장 "나는 자바가 좋아요" 의 전체 길이를 알고 싶다면 Java[].length()으로 적고, 배열 안에 들어있는 문장 "나는 자바가 좋아요" 에서 각 낱말의 위치를 파악하고 싶다면, Java[].charAt()를 적으면 되는 건가요? 여기서 Java[].부분에는 배열 index를 적고 (예를 들면 Java[0]), charAt()은 "..." 문장의 각 글자 별 인덱스를 적는 방식으로요.질문이 조금 많이 길었습니다. 하지만 동시에 그 만큼 제가 또한 열심히 배우고 싶다는 열정으로 봐주셨으면 합니다! 게다가 앞으로 다가올 기말시험에서도 배열의 비중이 꽤 크기도 해서, 정말로 잘 배우고 싶습니다! (해외에서 대학을 다니는 지라 지금 이맘때 쯤이 시험기간입니다 ㅠㅠ)참 얼마 전에, 자바로 소켓 프로그래밍으로 과제를 해야 했었던 일이 있었는데, 그 때 나도코딩님이 업로드 해주신 섹션 12. (Section 12.) 예외 처리 부분이 상당히 많이 도움 되었습니다.덕분에 과제에서 나쁘지 않은 점수를 받았습니다. 앞으로도 좋은 강의 잘 부탁하고, 진심으로 감사합니다 :-)
-
미해결홍정모의 따라하며 배우는 C++
int형 변수 배열에 대한 포인터에.....
int형 포인터에 int형 배열에 대한 주소를 넣고 포인터에 [0],[1] 을 입력하면 해당 배열에 대한 주소가 나오는 건가요?
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
자바스크립트의 배열은 연결리스트로 구현된건가요?
자바스크립트의 배열은 다른 언어의 배열과 다르다고 하셨는데, 연결리스트로 구현되어있는건가요?
-
미해결홍정모의 따라하며 배우는 C++
6.8 포인터와 정적 배열 *array =100 값 변경
11:00 강의에서 printarray함수 안에서 dereference 통해서 값을 바꿨는데 함수 밖에서도 값이 바뀌는 것이 잘 이해가 안 가서요 찾아보니 질문에서 dereference 이용해서 값을 찾아 들어가서 바꿨다고 답변이 있던데 printarray의 array와 main의 array가 이름만 같고 다른 개체라면 왜 둘 다 같이 바뀌는 건가요?? 같은 주소를 참조하고 있기 때문인가요??
-
미해결홍정모의 따라하며 배우는 C++
6.2배열기초 2of2 10:15
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 6.2배열기초 2of2 10:15 dosomething함수에서&students_scores의 주소와 &students_score[0]의 주소가 왜 다른가요?? 배열의 첫 번째 주소가 배열의 주소라면 같아야 하는 것 아닐까요??dosomething에서 다르게 나온 이유는 강의에서 dosomething의 &students_scores의 주소가 인자를 가리켜서 그런 것이라고 설명 들은 것 같은데 근데 배열이 함수로 넘겨 받을 때 주소로 복사 되는 것이라면 주소가 똑같이 나와야 하는 것이 아닌지 이해가 안갑니다
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
document.querySelectorAll 질문드립니다
안녕하세요 제로초님document.querySelectAll(buttons)을 비주얼 스투디오 코드에 넣었을 떄, 유사 배열이 console에서 출력되지 않습니다 (제로초님)코드를 따라서 입력했는데도 불구하고 이렇게 사진처럼 나옵니다).
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터, 배열 관련 질문
이 부분에서 dest[j] = '\0';까지는 dest에 HelloWORLD라는 값이 저장되는데 return dest로 넘어가는 순간 Hello로 바뀌어서 왜 그런지 모르겠습니다.. 그리고 char* StrCat으로 함수를 만들지 말고 void StrCat으로 해도 똑같이 작동하나요??
-
미해결제주코딩베이스캠프 Code Festival: JavaScript 100제
이렇게 하는건 안좋은 방법일까요?
저는 이렇게 풀어봤습니다..!! 3등이 여러명 추가 되어도 답 잘나옵니다.. 혹시 이것은 원본값인 arr을 바꾸기 때문에 안좋은 방법일까요?
-
미해결홍정모의 따라하며 배우는 C++
클래스 내부에 있는 vector 리턴값 출력하는 방법에 대해서 질문드립니다~
#include <iostream> #include <vector> using namespace std; class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> res; for (int i = 0; i < nums.size(); i++) { for (int j = i + 1; j <= nums.size()-1; j++) { if (nums[i] + nums[j] == target) { res.push_back(i); res.push_back(j); return res; } } } return res; } }; int main() { Solution s; vector<int> nums = { 2, 7, 12, 15 }; int target = 9; cout << s.twoSum(nums, target) << endl; return 0; } 릿코드 알고리즘 첫번째 문제입니다. 배열을 선언하고 for문으로 배열 인자값을 찾아서 서로 더해 타겟값을 구하는 문제입니다. 제가 구현한 코드인데, 인스턴스를 만들고 함수에 값을 대입하고 cout으로 출력을 하려고 했는데 코딩 에러가 났습니다 ㅠ 구글에 검색해봐도 방법이 없어서 부족한 실력이지만... 양해를 구하고 강사님께 질문 한번 드립니다.
-
미해결홍정모의 따라하며 배우는 C++
객체 배열 질문
배열로 만들어서 주소를 한번 확인해봤습니다. 근데 int는 4바이트이고 double은 8바이트인데 주소로는 16바이트의 차이가 났습니다. int랑 int로 했을때는 정상적으로 8이 되었는데 왜 이렇게 되는지 궁금합니다. 혹시 x+1이런방식이 아니고 다른 방식으로 해야 되는건지 궁금합니다
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
문자열(String)도 배열의 한 종류인가요??
최근 코딩 공부를 하다가, 좀 혼란스러운게 있어서 질문드립니다. 문자열은 분명히 타입오브 메소드를 썼을 때는 string이라는 문자열이라고 찍히는데, 배열의 방식으로도 문자열의 일부가 나오는 것을 보면서, 살짝 혼란스러웠습니다. 그래서, 제가 내린 가설은 "문자열도 배열의 하나이기 때문에, 배열의 방식으로 character를 찍을 수있다."는 것이었습니다. 문자열( string )은 배열의 하나인가요?? 아니면, 그냥 둘이 서로 다른 종류인데, 그냥 문자열에서 배열의 방식이 먹히는 건가요?? 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
함수를 호출할때 배열형식 인자를 참조가 아닌 값 형식으로 전달하고자 한다면 어떻게 해야할까요?
static void WantValue(int[] scores) { // 생략 } static void Main(string[] args) { int[] scores = new int[5] { 1, 2, 3, 4, 5}; WantValue(scores); } 위의 내용에서 WantValue 함수를 호출하면 참조가 전달되는 것으로 알고 있는데요. 근데 만약 참조가 아닌 값 형식으로 전달하려고 한다면 어떤식으로 해야하는지 궁금합니다.
-
미해결윤재성의 Google 공식 언어 Kotlin 프로그래밍 시작하기
배열 함수 중 .max() 와 .min() 사용 시 오류가 발생됩니다. 해결 방안을 알고 싶습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 배열 함수 중 .max() 와 .min() 사용 시 오류가 발생됩니다. 오류 문구는 다음과 같습니다. Kotlin 고수 선생님들 해결방법 부탁드립니다. 감사합니다. 아울러 아래에 42강 배열 강의 수강하며 작성한 Main.kt 내용 올려드립니다. /* Array - 배열은 그 크기가 늘어나지 않습니다. 1. Array() [형식] Array(개수, {식}) {예시 1} val array0 = Array(5, {100}) // => array0 : [100, 100, 100, 100, 100] {예시 2} 2. arrayOf() - 다양한 형태의 자료형을 저장할 수 있습니다. - 저장할 자료형을 제한하고 싶다면 자료형 + arrayOf() 형태의 함수를 사용합니다. : intArrayOf(), doubleArrayOf(), booleanArrayOf() ... - arrayof<Generic> 도 가능합니다. [형식] array(10, 20, 30 ...) array(10, 11.11, "문자열", true ...) 3. */ fun main() { val array1 = arrayOf(10, 20, 30, 40, 50) println("array1 : $array1") println("array1 : ${array1.contentToString()}") // => array1 : [10, 20, 30, 40, 50] val array2 = arrayOf(100,11.11, "문자열", true) println("array2 : ${array2.contentToString()}") // => array2 : [100, 11.11, 문자열, true] val array3 = intArrayOf(10, 20, 30, 40, 50) val array4 = doubleArrayOf(11.11, 22.22, 33.33, 44.44, 55.55) val array0 = booleanArrayOf(true, false, true, false) val array5 = arrayOf <String>("문자열1", "문자열2", "문자열3") println("array3 : ${array3.contentToString()}") println("array4 : ${array4.contentToString()}") println("array0 : ${array0.contentToString()}") println("array5 : ${array5.contentToString()}") val array6 = Array(5, {100}) println("array6 : ${array6.contentToString()}") val array7 = Array(5, {it * 2}) // it 내부에는 1부터 1씩 증가되는 값이 존재합니다. println("array7 : ${array7.contentToString()}") println("----- For -----") var count = 1 for (item in array1) { println("array1 ($count) : $item") count++ } println("----- Multi-Dimensional Array -----") val array8 = arrayOf(arrayOf(10,20,30), arrayOf(40,50,60), arrayOf(70,80,90)) println("array8 : $array8") println("array8 : ${array8.contentToString()}") // 다차원 배열 출력 방법 .contentDeepToString() println("array8 : ${array8.contentDeepToString()}") for (item1 in array8) { println("item1 : $item1") for (item2 in item1) { println("array8.item : $item2") } } println("----- 배열 출력 사용 방법 -----") println("array1 0 : ${array1[0]}") println("array1 1 : ${array1[1]}") println("array1 2 : ${array1.get(2)}") println("array1 3 : ${array1.get(3)}") println("----- 배열 요소 변경 -----") println("array1 : ${array1.contentToString()}") array1[0] = 100 println("array1 : ${array1.contentToString()}") println("----- 배열 크기 -----") println("array1 size : ${array1.size}") println("----- Kotlin 배열 제공 함수 -----") println("array1 : ${array1.contentToString()}") val array10 = array1.plus(60) println("array1 : ${array1.contentToString()}") // 변화 없습니다. println("array10 : ${array10.contentToString()}") // .plus 함수를 통해서 array10 이라는 새로운 배열을 생성해야 출력이 됩니다. val array11 = array1.sliceArray(1..3) // 배열 요소 추출 println("array11 : ${array11.contentToString()}") // => array11 : [200, 30, 40] println("첫 번째 값 : ${array1.first()}") // => 첫 번째 값 : 100 println("마지막 값 : ${array1.last()}") // => 마지막 값 : 50 println("30의 위치 : ${array1.indexOf(30)}") // => 30의 위치 : 2 println("평균 : ${array1.average()}") // => 평균 : 84.0 println("합 : ${array1.sum()}") // => 합 : 420 println("개수 : ${array1.count()}") // => 개수 : 5 println("개수 : ${array1.size}") // => 개수 : 5 (size Property) println("30을 포함하는가 : ${array1.contains(30)}") // => 30을 포함하는가 : true println("1000을 포함하는가 : ${array1.contains(1000)}") // => 1000을 포함하는가 : false println("30을 포함하는가 : ${30 in array1}") // => 30을 포함하는가 : true println("1000을 포함하는가 : ${1000 in array1}") // => 1000을 포함하는가 : false val array15 = arrayOf(100, 200, 300) // println("최대 : ${array15.max()}") // println("최소 : ${array1.min()}") val array12 = arrayOf(5, 1, 3, 7, 10, 8) val array13 = array12.sortedArray() val array14 = array12.sortedArrayDescending() println("array13 : ${array13.contentToString()}") // => array13 : [1, 3, 5, 7, 8, 10] println("array14 : ${array14.contentToString()}") // => array14 : [10, 8, 7, 5, 3, 1] }
-
미해결홍정모의 따라하며 배우는 C++
배열에서 링킹에러, 초기화에 대한 질문
Q1. 강의에서 선언된 배열의 범위 밖의 index를 선언하면 링킹에러가 뜬다고 설명하셨는데, 왜 컴파일에러가 아닌 링킹에러가 발생하는건지 궁금합니다. Q2. 배열을 초기화하지 않고 위 코드를 실행하면, 사진과 같이 -858993460이라는 고정된 값이 출력됩니다. 초기화하지 않으면 쓰레기값이 나오기 때문에, 실행될 때마다 다른 값이 출려될 거라 예상했는데 -858993460라는 수만 출력이 됩니다. 구글링해서 찾아봐도 다른 예시 코드에서도 -858993460만 출력되더라고요. 이러한 이유가 궁금합니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요. 배열 앝은 복사 관련 질문드립니다.
수업 설명에서 아래 코드와 같이 배열을 복사했을때 주소값을 복사하는 것이기 때문에 두개의 변수를 출력했을때 같다고 하셨습니다. 하지만 실행했을 때 사진과 같이 나오는데 이유가 뭘까요..? ㅠ let arr=[]; let answer = arr; console.log(answer); console.log(arr); arr = [1, 2, 3, 4, 5] console.log(answer); console.log(arr); >>>결과 console
-
미해결자바스크립트 비기너: 튼튼한 기본 만들기
정리
중고급 과정을 듣고 나서 다시 한 번 정리하였습니다. const test = ["<ul>"]; for(var i = 1; i <= 10; i++) { test.push(`<li id=id${i}>id${i}</li>`); } test.push("</ul>"); document.body.innerHTML = test.join(""); 우선 코딩시간에 나와있는 배열 사용의 예제풀이 입니다. 텍스트로 덧붙이는 형태라 DOM 구조를 이해하는게 아닌 듯한 느낌이 들었습니다. 따라서 Tag요소부터 만들어 나가는 형태로 반복문을 진행해보았습니다. const newUl = document.createElement('ul'); document.body.append(newUl); const Ul = document.querySelector('ul'); for(var i = 0; i < 10; i++) { const newLi = document.createElement('li'); Ul.append(newLi); const Li = document.querySelectorAll('li')[i]; Li.id = `id${i+1}`; Li.textContent = `id${i+1}`; } 보완할 요소가 더 있을 거 같은데 도통 떠오르질 않네요. 배열 구조로 한꺼번에 추가하는 형식으로 트리를 만들어가는 건 어려울 거 같아 질문드려요.