검색
아하에서 찾은 849건의 질문
- 생활꿀팁생활Q. C+ 배열 질문입니다. . .#include <iostream>using namespace std;void prime(int n);#define ROW 3#define COL 4void prime(int n){int i,k,j;int p[13];j=0;int c[3][4];for(i=2; i<=n; i++){for(k=2; k<n; k++){if(i%k==0)break;}if(i==k){p[j] = i;j++;}}int q=0;for(int i=0; i<ROW; i++){for(int k=0; k<COL; k++){c[i][k]=p[q];cout<<c[i][k]<<" ";q++;}cout<<endl;}}int main(){int n;cin>>n;prime(n);}이코드는 소수로채워진 2차원 배열입니다.실행은 잘되는데 의문점이있어요.13같은 작은값이나 100같은 높은값을 입력하면작은값을입력했을땐 -45343543 같은 값처럼 깨져서 나오고큰값을 입력했을땐 p쪽배열에 공간이없는지 에러가 뜨는거같은데.제가 원하는건 수를 입력했을때 그수까지의 소수만 배열에 출력하고 그뒤에 깨지는걸 출력안하고싶은데어떻게하면 되나요?
- 생활꿀팁생활Q. 자바 스택이용해서 휘위표기법으로 바꾸기 질문좀합니다자바 배운지 얼마 안돼서 많이 부족하고 코드가 난잡할 수 있습니다ㅠㅠ최선을 다해 짜봤는데 오류가 뜨네용..어느 부분에서 오류가 있을까요....package test;import java.util.Stack;import java.util.ArrayList;class Converter{public String result = "";String now = "";String s="";ArrayList<String> con_input = new ArrayList<String>(); //가변 크기의 배열->용량 절약public int isNum(String str){ //숫자혹은.인지 연산자인지 알려주는 메소드char ch=str.charAt(0); //0번째 문자를 가져오기if((ch>='0' && ch<='9') || ch == '.') //숫자이거나 .이면return 1;else if(ch=='%') //%이면return -1;else return 0; //연산자이면(괄호, +-*/)}public int operator(String str) { //연산자 가중치 알려주는 메소드switch(str) {case "+" : case "-" : return 1;case "*" : case "/" : return 2; default : return 0;}}//string으로 받은 후 퍼센트 연산 해주면서 arraylist로 바꿀 것..->연산자 만날 때 마다 끊기public String converter(String input) { //후위식으로 변환해주는 메소드StringBuilder sb = new StringBuilder(input); //%위해Stack<String> st = new Stack<String>();int start = 0;for(int i = 0; i<sb.length(); i++) { //arraylist로 바꾸면서 %도 없애줌if(isNum(now)==-1) //%이면{sb.delete(i,i+1); //%삭제sb.insert(i,"*0.01"); //%자리에 *0.01 삽입 ->길이도 늘어나겠지?i--;}if(isNum(now)==0) //+-*/괄호 이면 그전까지 자르기{if(isNum(sb.substring(i-1,i))==0) //그 전이 연산자나 괄호인 경우con_input.add(sb.substring(i,i+1)); //연산자나 괄호 추출else{con_input.add(sb.substring(start, i)); //연산자 전까지의 숫자 추출con_input.add(sb.substring(i,i+1)); //연산자나 괄호 추출start = i+1;}}/*후위식으로 바꾸기*/for(int j = 0; j<con_input.size(); j++){now = con_input.get(j); //하나 추출해서 now에 넣기if(now.contentEquals("+") || now.contentEquals("-") || now.contentEquals("*") || now.contentEquals("/") ||now.contentEquals("(") || now.contentEquals(")")){ //연산자이면switch(now) {case ("("):st.push(now);break; //(를 만나면 바로 스택에 넣기case (")"):while(true) {s= st.pop();if(!(s.contentEquals("("))){result = result.concat(s);}else{st.push(s);break;}//()사이 연산자들 모조리 스택에서 빼서 추가}s = st.peek();if(s.contentEquals("("))st.pop(); break;case ("+"): case("-"): case("*"): case("/"):if(st.empty()) { //스택이 비었으면 무조건 스택에 넣기st.push(now);}else { //스택이 비지 않았으면 연산자 가중치 비교if(operator(st.peek()) >= operator(now)) //스택 내 윗것의 우선순위가 같거나 높으면{result = result.concat(st.pop());st.push(now);}else st.push(now); //스택 내 윗것의 우선순위가 작으면 now을 그냥 스택에 쌓아줌}break;default: break;}}else //숫자(double)이면result = result.concat(now); //숫자이거나 .이면 바로 result에 넣기}while(!(st.empty())){result = result.concat(st.pop());}return result;}} //바뀐 식 반환public class Test{public static void main(String[] args) {Converter con = new Converter();System.out.println("3*(4+50%)");System.out.println(con.converter("3*(4+50%)"));}}
- 생활꿀팁생활Q. While문 질문좀 합니다위 for문을 while문으로변형하는 코딩연습을 하는데아래와 같이하면 왜 안되는걸까요..public static void main(String[] args){int i =1;while ( i <=4){int j =3;while( j >= i){System.out.print(" ");j--;}int k =0;while( k < i){System.out.print("*");k++;}System.out.println();i++;}}}public static void main(String[] args){int i =1;while ( i <=4){int j =3;while( j >= i){System.out.print(" ");j--;}int k =0;while( k < i){System.out.print("*");k++;}System.out.println();i++;}}}
- 생활꿀팁생활Q. c언어 함수 코드 궁금한 게 있습니다void MaxandMin(int **Max,int **Min, int arr[]){int i;for (i = 0; i < 5; i++){if (**Max < arr[i])*Max = &arr[i]; // **Max = arr[i];if (**Min > arr[i])*Min = &arr[i]; // **Min = arr[i];}}int main(void){int arr[5];int *max,*min;int i;for (i = 0; i < 5; i++){printf("숫자 입력: ");scanf_s("%d", &arr[i]);}max = min = &arr[0];MaxandMin(&max, &min, arr);printf("큰 수: %d, 작은 수: %d", *max, *min);return 0;}위 함수에서 주석처리된 코드로 바꾸면 마지막으로 입력한 수가 출력됩니다.코드하고 주석 코드하고 같다고 생각했는데 왜 다른 결과가 나오는지 모르겠네요.큰 수만 구하면 정상적으로 되는데.어떻게 된 걸까요?
- 생활꿀팁생활Q. 파이썬 리스트를 삭제하지 않으면 메모리에 계속 남아있나요 ???order_list= ['치약', '비누', '화장지] for i in order_list: save_list = [] save_list.append(i)이런 식으로 for문으로 순회하면서 save_list를 생성하고 사용하는데요. save_list가 for문 한번 실행될 때마다 메모리에서 생성되고 삭제 되는 게 아닌가요?위의 예처럼 작은 경우는 상관없는데 데이터가 많아지면 memory error가 뜹니다. 저는 save_list가 for문 한번 끝나면 자동으로 삭제되서 메모리 반환 되고 다시 생성된다고 생각했거든요.그게 아니고 메모리에 남아있는 건지 궁금합니다.그리고 만약에 메모리에 남아 있다고 하면 아래 코드처럼 하면 되는지 질문 드립니다. del save_list
- 생활꿀팁생활Q. 이더리움 트랜잭션 수수료 처리하는 로직에 대해 자세히 설명하는 자료가 있을까요?이더리움 수수료가 제가 생각하는 상식과는 다르게 책정되는 것 같은데, 트랜잭션 수수료 관련 상세자료가 있을까요?코드상으로는 더 복잡한데 수수료가 더 적게 책정되는 경우가 있습니다.예를 들어 아래 코드에서 배열에 하나의 변수를 넣어주는 func1과 func2중 for문으로 감싼 func2 실행 수수료가 더 적게 나옵니다.이유가 뭘까요?uint256 a[10];function func1() { A[0] = 100;}function func2() { for(uint256 i=0; i<1; i++) { a[i] =100; }}
- 생활꿀팁생활Q. Python N개의 list만들기 질문 드립니다.파이썬으로 다음과 같은 N개의 리스트list1=[]list2=[]list3=[]...listN=[]를 만들고 싶습니다. for문을 써서for i in range(1,N+1): list%s=[] %i이런식으로 하면 can't assign to operator 라는 에러가 뜨네요... 무슨 방법 없을까요?
- 생활꿀팁생활Q. 2개의 Thread 중, 한 쓰레드가 돌아가는 동안에만 다른 쓰레드가 돌아가라 구현하고싶은 것은 웹이 아닌 자바에서 Progress 진행률을 나타내고 싶습니다.A라는 쓰레드는 ArrayList<String> 안에 있는 값을 2차원배열로 변환하는 메소드를 돌립니다.B라는 쓰레드는 JProgressBar를 이용하여 진행률을 나타냅니다. [ JProgressBar 또는 ProgressMonitor 사용중]ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡB쓰레드 :class Progress extends Thread {@Overridepublic void run() {Progressbar.setValue(0);int count = 0;while (?) {count++;Progressbar.setValue(count);try {sleep(?);}catch(Exception e) {}}}}ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡA 쓰레드 안에 메소드 :public static String[][] getRowArray(String filename) {int n = 0;int k = 0;List<String> list = getView(filename);RowArray = new String[getRowNum(filename) + 1][getVerticalNum(filename) + 1];if (list.size() > 1)RowArray = aa(filename, list, n, k);return RowArray;}public static String[][] aa(String filename, List<String> list, int n, int k) {for (int i = 0; i <= getVerticalNum(filename); i++) {if (n > OpenExcel.getRowNum(filename) || k > list.size()) {break;}if (i % getVerticalNum(filename) == 0 && i != 0) {RowArray[n][i] = list.get(k);n++;k++;return aa(filename, list, n, k);} else {RowArray[n][i] = list.get(k);k++;}}return RowArray;}ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡA쓰레드에서 메소드가 진행되는 동안에만 B쓰레드를 돌리고 싶은데B 쓰레드 안에 sleep(?) 을 맞춰주던지 count값을 바꿔줘야할것같은데.while 조건은 제 아무리 바꿔도 count 맥스값이 되면 B쓰레드가 끝나버리더라구요sleep(?) 을 맞춰주려 메소드가 실행될때의 시간을 구할려고 System.currentTimeMillis() 을 써볼려고 했지만A쓰레드 안에 메소드가 돌아갈 때 B도 같이 진행을 해야하기때문에 안되구요.. 방법 좀 알려주세요..
- 생활꿀팁생활Q. node.js npm EAI_AGAIN오류ㅠㅠ지난번에 HTML크롤링때 EAI_AGAIN오류가 나서 질문을 올렸는데 퍼펫티어나 세레늄을 사용해보라고 하셔서 npm i puppeteer로 퍼펫티어를 설치하려고 했는데 여기서 EAI _AGAIN오류가 또 발생하네요ㅠㅠ제가 볼때는 제가 사용 중인 리눅스 서버가 네트워크와 제대로 연결되지 않은 듯한데...어느 부분이 문제인지 구체적으로 아시는 분....혹시 안계실까요...ㅠㅠㅠㅠ아 그리고 이게 SSH로 접속중인 서버라서 네트워크가 아예 연결되지 않은 건 아닌 것 같습니다...ㅠ