본문 바로가기
반응형

전체 글116

[백준/Baekjoon 7576] 토마토 파이썬(Python)풀이 문제 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 문제 핵심 이번 토마토 문제의 경우 전형적인 BFS문제이다. 여기서 고려해야 할 것 먼저 (1) 익은 토마토를 찾고 (2) bfs를 이용하여 빈자리를 제외한 토마토를 익히는 것이다. (3) bfs를 진행후 토마토가 다 익었는지 확인해야한다. 풀이과정 1. M,N과 2차원 토마토를 넣을 tomato = [] 를 선언한다. 2. 좌표를 이용한 bfs이므로 dx, dy를 입력받는다.. 2023. 8. 14.
[백준/Baekjoon 2178] 미로탐색 파이썬(Python) 풀이 문제 문제 핵심 -> 문제를 해결하는데 있어서 중요한 부분은 미로에서 1일 때만 이동이 가능하고 (1,1)에서 출발해 (N,M)까지 이동할 때 지나야하는 최소의 칸 수를 구해야한다. 여기서 입력을 배열형태로 입력을 받을 경우 (0,0)에서 (N-1,M-1)까지로 받아야한다. 그림으로 보기 1인 부분을 지나가야하는 문제에서 DFS 또는 BFS를 고민할 수 있다. 사람마다 자신이 자신있는 것을 선택해서 풀면 되지만 좌표가 나오는 DFS,BFS 문제의 경우 BFS로 푸는것이 더 편하다 위의 그림을 보면 1을 지나갈 때마다 전 방문 칸수 +1를 해준다. 빨간색의 숫자가 지금까지 방문한 칸수가 되는 것이다.) (문제 풀때 위의 입력되어있는 '1' 부분이 DFS함수를 돌면 지금까지 지나온 칸 수로 저장한다고 보면 .. 2023. 8. 8.
C언어 기초- 지역변수 vs 전역변수 1. 지역변수 와 전역변수 정의 지역변수는 함수 내에서 정의되는 변수로써 함수의 출력이 끝나면 사라지는 변수입니다. 반대로 전역변수는 프로그램 전체에 쓸 수 있는 변수입니다. 즉 그렇기 때문에 전역변수는 모든 함수에서 이용이 가능한 변수입니다. 2. 지역변수 vs 전역변수 그럼 지역변수와 전역변수가 동일한 이름으로 변수가 성립했을 때를 보겠습니다. 결론부터 말하면 지역변수를 따릅니다. 말로 설명하자면 지역 변수가 전역 변수를 가려서 함수 내에서는 지역 변수를 사용하기 때문입니다. 3. 예시문장 #include int a = 10; void func() { int a = 20; printf("%d\n", a); } int main() { func(); printf("%d\n", a); return 0; }.. 2023. 3. 16.
[JAVA]-백준 10773번 : 제로(알고리즘:구현, 자료구조, 스택) 1. 문제 2. 예제 출력 3. 문제이해하기 이 문제에서 핵심은 3번째 문장 "재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지운다는 것이다." 즉 이 문장을 보고 아 이것은 큐 또는 스택이다. 그중 가장 최근데 있는 수를 지우는 것 즉 스택에 대한 문제이구나 라는 것을 알아야한다. 4. 설계해보기 그럼 이제 설계를 해보자 -> 간단하게 설계를 하면 아래와 같이 설계를 할 수 있다. 정수를 받을 k stack 구현 for( 정수 k 만큼 반복하기){ stack에 입력할 숫자 num을 정의한다. if(만약 들어간 수가 0일경우){ stack에서 최근 숫자를 뺸다 } else{ 그렇지 않을 경우 stack에 입력할 숫자를 저장한다. } stack 안의 요소들을 합할 변수 su.. 2023. 3. 5.
C언어 기초- 조건문(if, else-if,else) 1. 제어문 먼저 조건문을 알기위해서 제어문을 알아야 한다. 제어문: 프로그램의 흐름을 제어하는 문법 종류: 조건문, 반복문 2. 조건문 조건문: 조건의 결과에 따라 실행할 문장을 결정하는 문법 종류: 1) if문 2) switch문 3. if문의 구조 if(조건식){ 조건식이 참일 경우 실행할 명령1; } -> if문의 조건식은 항상 결과값이 참 혹은 거짓으로 나오는 식 즉ㄹ 비교연산자, 3 10) { printf("당신은 10살보다 많습니다.\n"); } } 만약 여기서 입력값을 10 초과하는 수를 넣는다면 if문의 출력문이 출력이 될것이다. 반대로 10보다 작은 값이 나온다면 아무것도 출력되는값이 없을 것이다. 그렇다면 10보다 작은 값이 나올때도 출력을 하고싶다면 어떻게 해야 할까? 이제 if e.. 2023. 3. 4.
C언어 기초- 변수(속성, 주소, 값, 이름, Const, 예약어) 1. 변수의 속성 ● 프로그래밍언어에서 변수(variable)는 컴퓨터 구조의 기억장소를 표현 ● 변수의 6가지 속성들 1) 이름(name) 2) 타입(type) 3) 주소(address) 4) 영역(scope) 5) 값(value) 6) 존속기산(lifetime) ● 바인딩(binding): 변수에 속성을 부여 2. 변수의 주소 ● 프로그램에서 사용되는 변수는 변수 type 크기만큼 기억장소에 대응한다. ● l-value: 변수에 대응된 기억장소의 주소 ● 한 변수의 주소는 실행 시점에 따라 다를 수 있다. ex) gao() { int x;...} ● 동일한 이름의 벼수는 프로그램에서 사용된 위치에 따라 주소가 다를 수 있다. -> int x; //전역변수 -> bao() { int x; ...} //.. 2023. 3. 3.
C언어 기초 - 자료형(데이터 타입 및 자료형 크기) 1. 자료형(데이터 타입이란)? ★ 비슷한 종류의 데이터 개체들과 그 개체들을 가지고 수행할 수 있는 연산들의 집합 ex) Java의 int, char 등등 -> 데이터 타입을 보는 관점 1) 메모리에 어떤 형태로 존재하는가? 2) 해당 타입에 속한 각 데이터는 어떤 구문을 사용해서 참조하는가? 3) 각 데이터를 가지고 할 수 있는 연산 및 표현은? 2. 타입으로 알 수 있는 정보 -> 값의 범위 -> 연산의 종류 -> 유효숫자의 범위 2.1 자료형 크기 char 부호가 있나 없나? 저장 할 수 있는 수의 범위 signed char -128 ~ 127 unsigned char 0 ~ 255 저장 공간의 크기 부호가 있나 없나? 저장할 수 있는 수의 범위 int short int signed short i.. 2023. 3. 3.
C언어 기초 -scanf_s(데이터 입력, 연속 입력, 문자열 입력)와 데이터 크기 Visual Studio에서는 scanf가 보안상의 이유로 사용이 안된다. 그 대신 scanf_s를 사용하면 예전 scanf처럼 입력이 가능하다. 1. 데이터 입력 -> 정수 입력 %d의 경우 입력변수에 & 붙이기 #include int main(void) { int a=0;//먼저 정수형 a를 초기화해준다. scanf_s("%d", &a);//여기서 변수 a에 값을 입력한다. printf("입력한 값 : %d\n", a);//입력한 값 출력 //주의 scanf_s에는 \n을 쓸수 없다. return 0; } 2. 연속 입력하는 법 #include int main(void) { int age; float height; printf("나이와 키를 입력하세요 : \n"); scanf_s("%d%f", &ag.. 2023. 3. 3.
C언어 기초- 연산자, 연산자 우선순위 1. C언어 연산자종류 산술연산자 : +, -, *, /, %, ++, -- 관계연산자 : ==, > , =, →→→→→→→→ 단항 연산자 2 - ++ -- ~ ! * & sizeof (type) ←←←←←←←← 산술 연산자(승제 연산자) 3 * / % →→→→→→→→ 산술 연산자(가감 연산자) 4 + - 비트 이동 연산자(쉬프트연산자) 5 비교 연산자(관계 연산자) 6 = 등가 연산자(동등 연산자) 7 == != 비트 연산자(AND) 8 & 비트 연산자(XOR) 9 ^ 비트 연산자(OR) 10 | 논리 연산자(AND) 11 && 논리 연산자(OR) 12 || 조건 연산자 13 ? : 대입 연산자 14 = += -= *= /= %= &= ^= |= = ←←←←←←←← 나열 연산자 15 , →→→→→→→→ 2023. 3. 3.
컴퓨터공학과들이 생각해야할 소프트웨어와 하드웨어의 차이 소프트웨어와 하드웨어의 차이점에 대해 개강하고 첫 논리회로 수업에서 교수님께서 우리들에게 던졌던 질문이였다. 소프트웨어와 하드웨어의 차이점이 무엇인지 아느냐? 이러한 질문에 대해 많지는 않지만 나를 포함 여러 학생들이 대답을 했는데 나온것들을 보면 눈에 보이는 것과 보이지않는것 또는 만질수 있는것과 만질수 없는것이라는 대답이나왔다. 나는 소프트웨어와 하드웨어의 차이점을 IT서비스업과 제조업의 차이를 보았다. 실제로 소프트웨어를 보면 어떠한 공장에서 물건을 생산하는것이 아닌 프로그램을 짜서거나 설계를 통해 소비자에게 서비스를 제공하는 것이고 하드웨어의 경우를 보면 공장을 짓고 제조를 통해 만들어져서 이러한 대답을 했다. 국가적인 예로는 미국의 경우 하드웨어쪽보다는 소프트웨어쪽이 발달이 되었고 한국의 경우는.. 2023. 3. 3.
728x90
반응형