트리의 부모 찾기

https://www.acmicpc.net/problem/11725

틀린 풀이

  • int a[][]= new int[n][3]

    • 왼쪽 자식, 오른쪽 자식, 부모를 저장 할 배열 생성
  • 전위 순회

    • 트리에서 입력한 line의 첫 번째 수가 있는지 탐색
  • 찾았으면 왼쪽 자식이, 오른쪽 자식이 비었는지 확인

  • 못 찾았으면 입력한 line의 두번째 수가

    • 왼쪽 자식 비었는지, 오른쪽 자식 비었는지 확인
  • 이게 과연 효과적인 방법일까 ?

옳은 풀이

  • “도시가 n개 + 도로가 n-1개 + 두 도시 사이에 경로가 항상 존재 + 방향 X ==> 트리임”

  • 트리의 탐색 : BFS / DFS 로 가능

  • 트리는 사이클이 없는 그래프

  • 따라서, 두 정점 사이 경로는 1개

  • now -> next로 가려면

    • 간선이 있어야함
    • next를 아직 방문하지 않았어야함 => check[next] == false
  • 알게 되는 것

    • parent[next] = now
    • depth[next] = depth[now] +1
Read more

문자열 분석

풀이

  • 매우 쉬운 문제
  • 문제에서 요구하는 대로 풀기만 하면 됨
  • 문자, 숫자, 공백 문자형으로 구분
Read more

다리만들기

https://www.acmicpc.net/problem/1676

풀이

  • 단지번호 붙이기 + 토마토 문제
  • 먼저 ‘단지 번호 붙이기’ 문제처럼 그룹별로 묶는다
  • 각각의 그룹에 대해 다른 섬까지 거리를 구한다
  • 거리의 최소값이 답
  • 매우 매우 어렵다. 그래프 감이 잘 안잡힌다
Read more

방번호

https://www.acmicpc.net/problem/1475

풀이

  • 수학문제
  • 0~9를 가지고 있는 배열 생성
  • 입력한 숫자가 없을때마다 배열에 다시 0~9 까지 추가해줌
  • 추가하는 개수가 답
  • but, 틀렸다고 나옴.
  • 효율적인 코드일까? 왜 틀렸다고 나올까?

Read more