Sensor and actuator placement algorithms are developed for linear discrete-time systems based on $H_{2}$ and $H_{\infty}$ optimization. For sensor placement, we design an observer that minimizes the $H_{2}$ norm of the error dynamics and the number of sensors at the same time. For actuator placement, we design a state feedback controller that minimizes the $H_{\infty}$ norm of the closed-loop system and the number of actuators at the same time. Any other combination of actuator placement for state-feedback design or sensor placement for observer design for continuous-time or discrete-time linear systems based on $H_{2}$ or $H_{\infty}$ optimization can be derived from these results. In both presented cases, the number of sensors or actuators is formulated as the $\ell_{0}$ norm of the observer or controller gain matrix. This $\ell_{0}$ norm is then relaxed to a weighted $\ell_{1}$ norm in order to obtain an iterative convex optimization problem. As an application example, we use the sensor placement algorithm to place phase measurement units with maximal impact on the $H_{2}$ performance in a power grid.