boj.kr/5567

문제

상근이는 자신의 결혼식에 학교 동기 중 자신의 친구와 친구의 친구를 초대하기로 했다. 상근이의 동기는 모두 N명이고, 이 학생들의 학번은 모두 1부터 N까지이다. 상근이의 학번은 1이다.

상근이는 동기들의 친구 관계를 모두 조사한 리스트를 가지고 있다. 이 리스트를 바탕으로 결혼식에 초대할 사람의 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 상근이의 동기의 수 n (2 ≤ n ≤ 500)이 주어진다. 둘째 줄에는 리스트의 길이 m (1 ≤ m ≤ 10000)이 주어진다. 다음 줄부터 m개 줄에는 친구 관계 ai bi가 주어진다. (1 ≤ ai < bi ≤ n) ai와 bi가 친구라는 뜻이며, bi와 ai도 친구관계이다. 

출력

첫째 줄에 상근이의 결혼식에 초대하는 동기의 수를 출력한다.




풀이과정
첫번째 for : 양방향 그래프로 입력을 받는다. 
두번째 for : 1과 친구인 관계를 ch에 1로 저장하고 queue에 친구관계인 node를 push한다.
세번째 while : queue에 들어간 node를 하나씩 꺼내서 그 것과 연결된 노드 중 방문하지 않은 노드의 ch에 2를 저장한다.
마지막 for : ch가 1인 것과 2인 것의 개수를 센다.

#include <iostream>
#include <vector>
#include <queue>
using namespace std;
queue<int> s;
vector<int> a[10001];
int ch[10001] = {0, };
int ans = 0;
int n;
int main() {
       cin >> n;
       int t;
       cin >> t;
       for (int i = 0; i < t; ++i) {
               int temp1, temp2;
               cin >> temp1 >> temp2;
               a[temp1].push_back(temp2);
               a[temp2].push_back(temp1);
       }
       int temlen = a[1].size();
       for (int i = 0; i < temlen; ++i) {
               ch[a[1][i]] = 1;
               s.push(a[1][i]);
       }
       while (!s.empty()) {
               int temp = s.front();
               s.pop();
               int len = a[temp].size();
               for (int j = 0; j<len; ++j)
                      if (ch[a[temp][j]] == 0) {
                              ch[a[temp][j]] = 2;
                      }
       }
       for (int i = 2; i <= n; ++i) {
               if (ch[i] == 2 || ch[i] == 1) {
                      ans++;
               }
       }
       cout << ans;
       return 0;
}


'알고리즘' 카테고리의 다른 글

[DP] 백준 2011 암호코드  (0) 2018.01.02
[그래프] 백준 1987 알파벳  (0) 2017.12.14
[EAZY] 백준 1065번 한수  (0) 2017.08.17
[EAZY] 백준 4673 셀프넘버  (0) 2017.08.15
백준 C++ 11721번  (0) 2017.08.15
HTML

: Hyper Text Markup Language의 약자





Hypertext 

: 문서와 문서가 '링크' 로 연결되어 있다. 이러한 문서 시스템



Link - HTML의 본질

HTML의 본질 - WEB



Markup

tag의 이해부터 시작




tag

안녕하세요 생활코딩 입니다. 이것을 HTML로 표현하고 싶다면

안녕하세요 <strong>생활코딩</strong>입니다. (여기서 태그 사이에 있는 것을 컨텐츠라고 한다)

여기서 <strong> 이 Tag이다.



실습

실습을 위해 메모장 파일을 만들어 apache2의 htdocs에 저장한다.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>
    안녕하세요. <strong>생활코딩</strong>입니다.
</body>
</html>



HTML 문법 - 속성



링크를 나타내기 위한 tag

<a>생활코딩</a> => 어딘가에 링크가 걸려 있다는 것을 알 수 있음. 

어디에 걸려있는지에 대한 정보가 필요함

<a href="http://opentutorials.org/course/1">생활코딩</a> 로 표현가능

여기서 

href : 속성명

이후의 것 : 속성의 값

새창에서 열기가 하고 싶다면 target="_blank" 사용

=> target 도 속성. 속성과 속성 사이는 빈칸 하나로 구별함 


a태그 실습

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
</head>
<body>
    안녕하세요. <a href="http://pkiop.tistory.com">푸키키키</a>; 입니다.
</body>
</html>

새 창에서 열기

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
</head>
<body>
    안녕하세요. <a href="http://pkiop.tistory.com" target="_blank">푸키키키</a>; 입니다.
</body>
</html>


















'웹 프로그래밍' 카테고리의 다른 글

CSS 이론1  (0) 2017.12.16
개발도구 - 아톰  (0) 2017.12.16
HTML실습  (0) 2017.12.14
HTML 문법 - 태그의 중첩  (0) 2017.12.14
수업소개 ~ 서버와 클라이언트  (0) 2017.12.04


+ Recent posts